0

Ich möchte nur die Benutzer anzuzeigen, die Admin sind und nach einem Suchbegriff dieWie where-Klausel auf Daten verwendet werden, die in Laravel 5 geladen wird?

in das Suchfeld eingegeben wird

Ich speichere das Schlüsselwort erste

$keyword = $request->get('search'); 

und dann

$users = User::with('admin')->where('role', 'super_admin') 
        ->where(function ($query) use($keyword){ 
         $query->where('id', 'LIKE', "%$keyword%") 
         ->orWhere('name', 'LIKE', "%$keyword%"); 
      })->paginate($perPage); 

Diese funktioniert wie im Suchen von Begriffen aus der Haupttabelle, die user ist Tabelle

Aber ich möchte auch Filter mit Admin ta ble Spalten als

$users = User::with('admin')->where('role', 'super_admin') 
        ->where(function ($query) use($keyword){ 
         $query->where('id', 'LIKE', "%$keyword%") 
         ->orWhere('email', 'LIKE', "%$keyword%") 
         ->orWhere('name', 'LIKE', "%$keyword%") 
         ->orWhere($this->admin->status, 'LIKE', "%$keyword%"); 
      })->paginate($perPage); 

dies ein Fehler wirft undefined property admin

Aufgrund dieser Linie ->orWhere($this->admin->status, 'LIKE', "%$keyword%");

So wie kann ich in Filtern von Daten verwenden Admin-Spalte

Antwort

0

eifrig Probenbeladung

$users = User::with([ 
     'admin' => function($query) use($keyword) { 
      $query->where('status', 'LIKE', "%$keyword%") 
     } 
    ]) 
    ->where('role', 'super_admin') 
    ->where(function ($query) use($keyword){ 
        $query->where('id', 'LIKE', "%$keyword%") 
        ->orWhere('email', 'LIKE', "%$keyword%") 
        ->orWhere('name', 'LIKE', "%$keyword%") 
    })->paginate($perPage); 
Verwandte Themen