2017-12-22 8 views
1

Ich benutze Laravel für Controller und Blade-Datei für eine Webseite. Mein Code ist so etwas wie:Laravel Get und paginate gleiche Daten

PropertiesController

$properties = Property::where('status', 1); 
$properties = $properties->orderBy('properties.created_at', 'DESC')->paginate(8); 
return view('properties.index')->with('properties', $properties); 

in index.blade.php

@foreach ($properties as $property) 
<div class="geo"> 
    <span class="lat">{{ $property->title }}</span>, 
    <span class="lng">{{ $property->description }}</span> 
</div> 

, was ich will erreichen, ist Kategorien zu bekommen w.r.t. entlang zählt mit Eigenschaften, denn das ist, ich tue

$properties = Property::where('status', 1); 

$categories = array(); 
if (is_null($req->c)) { 
    $search = $properties; 
    foreach (Category::all() as $category) { 
    array_push(
     $categories, 
      array(
      'id' => $category->id, 
      'name' => $category->category, 
      'counts' => count($search->where('properties.category', $category->id)->get()), 
     ) 
     ); 
    } 
} 

$properties = $properties->orderBy('properties.created_at', 'DESC')->paginate(8); 

return view('properties.index')->with('properties', $properties)->with('categories', $categories); 

$search = $properties; und
'counts' => count($search->where('properties.category', $category->id)->get()),

mit diesem gibt es mir error

Der Versuch, Eigentum von Nicht-Objekt zu erhalten
<span class="lat"><?php echo e($property->title); ?></span>,

+0

wo haben Sie für() verwendet? kann ich sehen? –

Antwort

0

Wenn die Beziehungen in der m gemacht werden odels sollten Sie nur mit() auf diese Weise verwenden. So sollte der Controller sein.

$properties = Property::where('status', 1)->with('category')->orderBy('properties.created_at', 'DESC')->paginate(8); 
return view('properties.index', compact('propierties')); 

Dies gibt Ihnen die Liste der Eigenschaften neben der zugewiesenen Kategorie.

Aber wenn Sie die Kategorien auflisten müssen und in jeder Kategorie die Eigenschaften haben, müssen Sie dies tun.

$categories = Category::with('properties')->paginate(8); 
return view('properties.index', compact('categories')); 
Verwandte Themen