2016-06-03 10 views
0

Im Moment habe ich diesen Laravel CodeWie suche ich eine Abfrage in Laravel, wo ich einen Fremdschlüssel verwende, der nicht "id" heißt?

$theCompany = App\bought::find($company->theName); 

und ich bekomme diese Fehlermeldung

QueryException in Connection.php line 713: 

SQLSTATE [42S22]: Column nicht gefunden: 1054 Unknown column 'boughts.id' in 'where clause' (SQL: select * from boughts wo boughtsid = Mike Grenze 1)

die Spalte ich bin Anpassung der Spalte 'theName' in der Tabelle 'Boughts' benannt ist.. Ich verwende keine ID mit Zahlen und stattdessen verwende ich String-Variablen für die Spalte 'theName'. Wie kann ich mit dem Kundenspaltennamen danach suchen?

+0

Lässt Laravel dies standardmäßig nicht zu, weil die Verwendung eines Foreign-Schlüssels, der nicht numerisch ist, eine schlechte Übung ist? Muss die Suchanfrage von einem Primärschlüssel stammen? –

Antwort

3

Wenn Sie die "find" -Methode Ihres Modells verwenden, wird standardmäßig mit dem Feld "id" gesucht. Allerdings, wenn Sie für andere Spalte suchen möchten, können Sie die „where“ Methode verwenden:

App\bought::where('theName', $company->theName)->get(); 

Für weitere Informationen können Sie this link überprüfen können.

+0

Sie können die Methode setKeyName auch verwenden, um einen benutzerdefinierten Primärschlüssel festzulegen oder das geschützte Attribut primaryKey im Modell zu verwenden, um es zu definieren. – astroanu

Verwandte Themen