2017-06-13 56 views
0

我嘗試這樣的:如何在laravel blade view上定義可變數組?

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

如果代碼執行,存在錯誤:

取消定義變量類別

我該如何解決呢?

+1

必須定義'$類別[]'與外界不同的名稱'@ foreach'循環 – smokehill

+0

@smokehill,非常感謝 –

回答

1

您可以簡單地使用Laravel收集

{{ $categories->pluck('name')->implode(', ') }} 

或者,如果你想在的foreach這樣做,那麼

@php ($names = []) 

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

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

它不起作用。存在錯誤:缺少參數2照明\數據庫\ Eloquent \ Model :: setAttribute()...' –

+0

我試試這樣:'

@php ($category = []) @foreach($categories as $category) @php ($category[] = $category->name) @endforeach {{ implode(', ', $category) }}
' –

+1

現在它的工作。因爲之前的變量數組= foreach。兩個名字都是一樣的。這是造成錯誤的原因。非常感謝 –

0

您必須在<?php ... ?>塊中聲明一個數組,然後在{{blade}}塊中使用相同的數組。

+0

另外,還有Blade特殊語法:'{{ - */$ var ='test'/ * - }}'。然後,以標準方式使用它:'{{$ var}}'。 – lesssugar

+0

@Santhosh J,這是一樣的。它不起作用 –

+0

@lesssugar,如果它是可變數組,它不起作用 –