Php 如何在laravel刀片视图上定义变量数组?

Php 如何在laravel刀片视图上定义变量数组?,php,laravel,laravel-5.3,laravel-blade,implode,Php,Laravel,Laravel 5.3,Laravel Blade,Implode,我试着这样: <div class="media-body"> @foreach($categories as $category) @php $category[] = $category->name @endphp @endforeach {{ implode(",", $category) }} </div> @foreach($categories作为$category) @php$category[]=$categ

我试着这样:

<div class="media-body">
    @foreach($categories as $category)
    @php $category[] = $category->name @endphp
    @endforeach   
    {{ implode(",", $category) }}
</div>

@foreach($categories作为$category)
@php$category[]=$category->name@endphp
@endforeach
{{内爆(“,”,$category)}
如果执行了代码,则存在错误:

未定义变量类别


如何解决它?

您必须在
块中声明一个数组,然后在
{blade}
块中使用相同的数组。

您可以简单地使用Laravel集合

{{ $categories->pluck('name')->implode(', ') }}
或者如果你想在foreach做这个

@php ($names = [])

@foreach ($categories as $category)
    @php ($names[] = $category->name)
@endforeach

{{ implode(', ', $names) }}

另外,还有Blade的特殊语法:
{{--*/$var='test'/*--}
。然后,您以标准方式使用它:
{{$var}
@lessugar,如果它是变量数组,则它不工作它不工作。存在错误:
缺少illumb\Database\Eloquent\Model::setAttribute()的参数2…
我这样尝试:
@php($category=[])@foreach($categories as$category)@php($category[]=$category->name)@endforeach{{内爆(',',$categority)}
现在它可以工作了。因为before变量数组=foreach的值。两个名字都一样。这就是导致错误的原因。谢谢,您必须在
@foreach
loop@smokehill,非常感谢