2017-02-21 22 views
3

Если мой код так:Почему условие @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 \ Resources \ просмотров \ front.blade.php)

Если мой код выглядит так:

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

I works

Почему первый способ не работает?

+0

Определите переменную category_id перед ее циклом, а затем назначьте переменную в цикле. – Sona

ответ

4

Потому что вы пытаетесь назначить переменную в режиме Blade. Вот способы назначения переменных в шаблоне Blade.

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

Пространство между @if() и @endif просто HTML. Вот почему вы используете фигурные скобки для значений эха {{ $value }}

 Смежные вопросы

  • Нет связанных вопросов^_^