Есть ли способ вернуть усеченную строку в выводе JSON Eloquent?

у меня есть NewsItem Модель со свойством content из text тип. Это долго.

Теперь я хочу вернуть все content в show действие, но в index действие хочу вернуть только первый например. 100 символов content поле.

Я знаю, что могу использовать аксессор, но думаю, это повлияет на show действие тоже.

Спасибо за помощь.

1

Решение

Я думаю, что аксессор был бы лучшим решением. Кто-то может иметь лучший, хотя.

Создайте отдельный метод доступа под названием что-то вроде «отрывка», используйте его в index и использовать «контент» в show

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

Другие решения

Просто измените значение, прежде чем вернуться в метод индекса. Это должно работать, если у вас нет мутатора для content атрибут, который как-то этому помешает:

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

Это хорошо для одного случая использования. Если вы обнаружите, что вам нужно сделать это в других местах, вам следует добавить метод к вашей модели, который обрабатывает это для вас, или даже, возможно, новую модель, которая расширяет модель NewsItem и имеет мутатор set или get для содержимого приписывать.

1

По вопросам рекламы [email protected]