2016-09-09 4 views
0

Ich habe ein Modell Category und ein Modell Subcategory. Diese sind verwandt.Laravel Überprüfen Sie, ob Datensätze vorhanden sind

Jetzt möchte ich in einer Ansicht überprüfen, ob eine Kategorie Unterkategorien hat. Wenn dies der Fall ist, führen Sie diesen Code aus, wenn Sie diesen Code nicht ausführen.

Ich dachte an so etwas wie

@forelse($categories as $category) 
          @if($category->subcategory) 
           <li class="sub-category"> 
            <a href="#"><img src="{{ asset('img/icon/'.$category->icon) }}" alt="{{ $category->name }}">{{ $category->name }}</a> 
            <ul class="sub-menu clearfix"> 
             @foreach(isset($category->subcategory)) as $subcategory) 
              <li class="sub-sec col-md-6"> 
               <ul> 
                <li><a href="#" class="title">{{ $subcategory->name }}</a></li> 
                <!--// 
                <li><a href="#"><i class="fa fa-angle-double-right"></i> Single Item 1</a></li> 
                <li><a href="#"><i class="fa fa-angle-double-right"></i> Single Item 2</a></li> 
                <li><a href="#"><i class="fa fa-angle-double-right"></i> Single Item 3</a></li> 
                <li><a href="#"><i class="fa fa-angle-double-right"></i> Single Item 4</a></li> 
                --> 
               </ul> 
              </li> 
             @endforeach 
            </ul> 
           </li> 
          @else 
           <li><a href="#"><img src="{{ asset('img/icon/'.$category->icon) }}" alt="{{ $category->name }}">{{ $category->name }}</a></li> 
          @endif 

         @empty 

         @endforelse 

Aber isset() scheint mit falsch zu sein

Antwort

1

Es gibt eine einfache Möglichkeit, dies zu tun. Verwenden Sie einfach die Anzahl der Unterkategorien, um zu bestimmen.

Beispiel:

if ($category->subcategory()->count() > 0)

Vielleicht sollten Sie auch einige Namen von Variablen, Methoden und Beziehungen ändern. Es macht das Lesen viel einfacher. Zum Beispiel könnten Sie Ihre Unterkategorie Relationen zu Unterkategorien umbenennen, da es mehr als eins sein wird.

Ihr Code würde in etwa so aussehen:

@forelse ($categories as $category) 

    <li> 

     <a href="...">{{ $category->name }}</a> 

     @if ($category->subcategory()->count() > 0) // Check if more than one subcategory 

      @foreach($category->subcategories as $subcategory) // Change $category->subcategory to $category->subcategories 

       ... 

      @endforeach 

     @endif 

    </li> 

@empty 

    No categories 

@endforelse 

this helps :)

+0

Dies funktioniert wie ein Charme. In Bezug auf die Pluralform habe ich das getan, nur die falschen Namen in der Ansicht lol verwendet. Danke, dass du es aufgezeigt hast, tho! – Scarwolf

+0

@Scarwolf Glücklich zu helfen :) –

Verwandte Themen