在laravel中如何用逗号分隔每个类别,如果有很多类别,则最后一个项目不应该有逗号。 。
应该看起来像:
职位类别:category1,category2,category3,category4
这是我的代码:
@if(count($job->categories) < 2)
@foreach($job->categories as $category)
{{ $category->name }}
@endforeach
@else
@foreach($job->categories as $category)
{{ $category->name . ", " }}
@endforeach
@endif
答案 0 :(得分:2)
您可以使用Collection类中的'lists'方法。
更多信息:
Illuminate\Database\Eloquent\Collection
{{ implode(', ', $job->categories->lists('name')) }}
答案 1 :(得分:1)
试试这个:
implode(',', array_map(function($a){return $a['name'];}, $job->categories->toArray()))
你想要一个数组中的所有名字,以便用逗号破坏它们。因此,您使用array_map
迭代类别。但是array_map
需要一个数组,而不是Collection
,因此您首先需要将类别Collection
转换为具有toArray
函数的数组。
但我认为@CorradoStriuli的回答更为优雅,而且更加“laravelish&#39;
答案 2 :(得分:1)
假设categories
是Collection
,您可以轻松完成
{{ $job->categories->implode('name', ', ') }}
答案 3 :(得分:0)
你可以通过很多方式做到这一点:
例如:
使用substr()
:
$yourString = susbtr($yourString,0,strlen($yourString-1));
使用trim()
:
$yourString = trim($yourString,',');
答案 4 :(得分:0)
假设$ job-&gt;类别是一个数组(而不是Iteratable),你可以使用implode:
$yourString = implode(",",$job->categories);
//$yourString now contains a comma seperated list of categories
或者,在枝条模板中进行,你可以使用加入我相信(因为我使用了枝条已经有一段时间......)
{{ $job->categories|join(',') }}
http://php.net/manual/en/function.implode.php http://twig.sensiolabs.org/doc/filters/join.html