2017-02-21 5 views
3

Wenn mein Code wie folgt lautet:Warum Bedingung @if in Laravel Klinge nicht funktioniert? (Laravel 5.3)

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

Es gibt Fehler:

Undefined variable: category_id (Ansicht: C: \ xampp \ htdocs \ myshop \ resources \ Ansichten \ front.blade.php)

Wenn mein Code wie folgt lautet:

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

Ich arbeite

Warum der erste Weg nicht funktioniert?

+0

Definieren Sie die Variable category_id, bevor Sie sie loopen, und weisen Sie dann eine Variable in looping zu. – Sona

Antwort

4

Weil Sie versuchen, eine Variable in der Blade-Ansicht zuzuweisen. Es gibt Möglichkeiten, Variablen in der Blade-Vorlage zuzuweisen.

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

Der Raum zwischen @if() und @endif ist einfach html. Aus diesem Grund verwenden Sie geschweifte Klammern, um Werte zu echotieren. {{ $value }}

Verwandte Themen