Итак, учитывая $user->tags
строку
apple, orange, kiwi, lemon, pineapple
Попытка разделения и ограничения на основе одной длины не будет работать, поскольку данные будут динамическими и приведут к частичному или неполному тегу. Чтобы обойти это, используйте explode()
:
$tags = explode(",", $user->tags); // ["apple", "orange", "kiwi", "lemon", "pineapple"];
Теперь, когда $tags
является массивом, должно быть проще взять 3 и вернуть их:
$firstThree = array_splice($tags, 0, 3); // ["apple", "orange", "kiwi"];
Теперь, когда ваш массив $tags
содержит 3 элемента (или меньше, в зависимости от содержимого $user->tags
), вы можете implode()
преобразовать его в строку:
$tagString = implode(",", $firstThree); // apple, orange, kiwi
Далее, сложите все вместе. В вашем случае это, вероятно, проще сделать как функцию вашего $user
:
public function tagString(){
$tags = explode(",", $this->tags);
$firstThree = array_splice($tags, 0, 3);
return implode(",", $firstThree);
}
И, в вашем блейд-файле:
{{ $user->tagString() }}
И это сделало бы это!
Опять же, есть много способов сделать это. Можно привести аргумент в пользу простого регулярного выражения, ограничивающего значение $user->tags
первыми 3 экземплярами word,
, но регулярное выражение не является моей областью знаний. Надеюсь, это поможет!