2017-02-22 5 views
1

Meine Tabelle ist wie folgt:Wie geht man mit Laravel Eloquent "WHERE" Abfrage mit Schrägstrich auf den Wert? (Laravel 5.3)

enter image description here

Auf der mysql, versuche ich so:

SELECT * FROM players WHERE player_type = 'App\Models\Player' 

Daten nicht

nicht zeigt also, füge ich slash wie folgt:

SELECT * FROM players WHERE player_type = 'App\\Models\\Player' 

Dat ein

zeigt dann in Laravel eloquent, versuche ich so:

$select = array(
    'player_type' 
); 
$query = self::where('player_type', '=', 'App\\\Models\\\Player') 
      ->paginate(10, $select, 'page', null, null); 

Daten nicht zeigt nicht

Wie kann ich es lösen?

+0

Kann ich sicher sein, Sie zu übernehmen sind 'morph' Beziehung Methode? –

+0

@Omisakin Oluwatobi, Ja, ich benutze es –

+0

dann müssen Sie sich nicht sorgen mit der Frage nach, wo der Spielertyp wieder einmal, wenn zum Beispiel die Beziehung ist Spieler und Benutzer dann können Sie einfach durch Somethiing holen wie 'User: : mit ('players') -> get() ' –

Antwort

1

Nur ein anderer Ansatz hier, nicht die Lösung.

Alle Ihre Modelle haben den gleichen Namensraum App\Models\.... Wenn ja, dann speichern Sie einfach das aktuelle Modell in Ihrer Datenbank ohne seinen Namensraum.

id  player_type 
1  Player 
2  Player 

später dann in Ihrem Controller, erhalten Sie den palyer Typ und fügen Sie manuell den Namespace, wenn das Modell zu instanziiert versuchen.

0

Sie haben "" nicht doppelte Anführungszeichen verwenden ''

$result = DB::table('users') 
    ->where("city", "App\\Models\\Player") 
    ->get(); 
    dd($result); 

Ich versuche, dies in meinem localhost und es funktioniert

Verwandte Themen