2017-02-21 98 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 }}