2017-02-21 135 views
3

如果我的代碼是這樣的:爲什麼在laravel blade中不能使用@if? (Laravel 5.3)

<ul class="test"> 
    @foreach($categories as $category) 
     @if($loop->first) 
      $category_id = $category->id 
     @endif 
    @endforeach 
</ul> 

存在着錯誤:

未定義的變量:CATEGORY_ID(查看: C:\ XAMPP \ htdocs中\ myshop \資源\意見\ front.blade.php)

如果我的代碼是這樣的:

<ul class="test"> 
    @foreach($categories as $category) 
     @php 
     if($loop->first) 
      $category_id = $category->id 
     @endphp 
    @endforeach 
</ul> 

我的作品

爲什麼第一種方式不起作用?

+0

在循環它之前定義category_id變量,然後在循環中指定一個變量。 – Sona

回答

4

因爲您正嘗試在刀片視圖中分配變量。以下是在刀片模板中分配變量的方法。

{{--*/ $category_id = $category->id /*--}} 
<?php $category_id = $category->id ?> 
@php $category_id = $category->id @endphp 

@if()@endif之間的空間僅僅是HTML。這就是爲什麼你使用大括號來回顯值{{ $value }}