我的NewsItem
模型的属性content
属于text
类型。这很长。
现在,我想在content
操作中返回整个show
,但在index
操作中,我只想返回第一个例如。 content
字段的100个字符。
我知道我可以使用访问者,但我想它也会影响show
操作。
感谢您的帮助。
答案 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属性。