2017-01-25 3 views
0

Laravel 5.3. Ich bekomme einen falschen Wert für primaryKey einer Tabelle (Benutzer Tabelle) obwohl ich es richtig bekomme. Es ist sehr seltsam. Hier ist mein CodeLaravel 5.3 kann nicht auf das PrimeryKey-Objekt zugreifen

protected $table = 'users_tbl'; 
protected $primaryKey = "email"; 

Der Controller:

$user = User::find('[email protected]'); 
dd($user); 


#table: "users_tbl" 
#primaryKey: "email" 
#fillable: array:8 [▶] 
#hidden: array:2 [▶] 
#connection: null 
#keyType: "int" 
#perPage: 15 
+incrementing: true 
+timestamps: true 
#attributes: array:15 [▼ 
    "email" => "[email protected]" 
    "register" => "1892" 
    "section" => "GO" 
    "turn" => 92 
    ... 

Ausgabe der E-Mail richtig, aber wenn ich durch das Objekt zugreifen 0. erhalten jedoch die übrigen Attribute sind ok:

echo $user->email; 
echo "<br>"; 
echo $user->register; 
echo "<br>"; 
echo $user->section; 
echo "<br>"; 
echo $user->turn; 
echo "<br>"; 
exit; 

Ausgabe

0 
1892 
GO 
92 

Irgendwelche Ideen was los ist?

Antwort

0

Ich glaube, Sie haben vergessen, die Inkremente auf false für Laravel zu setzen, um nicht nach einer automatisch inkrementierten ID zu suchen.

Das ist etwas, das mir vorher passiert ist und mich verrückt gemacht hat !!

Auf Ihrem User.php Modell fügen Sie diese Zeile:

public $incrementing = false; 
+1

Dank Mann, den ich verrückt wurde immer. Es ist sehr klar in Laravel Dokumentation. aber ich habe nicht dieses Set in anderen Laravel's Projekt und sie funktioniert ok. Immer Version 5.2 oder weniger. – user3604672