有没有办法在JSON Eloquent输出中返回截断的字符串?

时间:2014-09-16 12:24:23

标签: php laravel laravel-4 eloquent

我的NewsItem模型的属性content属于text类型。这很长。

现在,我想在content操作中返回整个show,但在index操作中,我只想返回第一个例如。 content字段的100个字符。

我知道我可以使用访问者,但我想它也会影响show操作。

感谢您的帮助。

2 个答案:

答案 0 :(得分:2)

我认为访问者是最好的解决方案。但是有人可能会有一个更好的。

创建一个名为' excerpt'之类的单独访问者,在index中使用该访问者并使用'内容'在show

public function getExcerptAttribute()
{
    return  str_limit($this->attributes['content'], 100, '...');
}

答案 1 :(得分:1)

只需在index方法中返回之前修改该值。这应该有效,除非你有content属性的mutator,否则会以某种方式干扰这个:

$item->content = substr($item->content, 0, 100); 
return $item;

这适用于单个用例。如果您发现需要在其他位置执行此操作,那么您应该为您的模型添加一个方法,为您处理此方法,甚至可能为扩展NewsItem模型的新模型添加方法,并为内容添加set或get mutator属性。