2017-11-20 3 views
1

Modell: PlayerResultphp - Laravel - String zurückgegeben als boolean

protected $fillable = ['result']

result ist string (varchar (191)) in db

Gespeichert Wert in db 'gewinnen' zum Beispiel ist, wenn der Zugriff durch eloquent zurückgegeben als wahr (boolean).

$var = PlayerResult::where('event_id', $event->id)->whereNotIn('player_id', [$player->id])->first();

In dd($var) ‚s attributes Ergebnis ist wahr, in original Ergebnis wird 'gewinnen'

I (in-Modell) versucht Casting gleich, aber immer noch ...

Warum ist es als Boolean zurückgegeben? Und wie man es repariert? Dank

EDIT:

Ich dachte @TimLewis das Problem gelöst, aber auch umbenannt ich Spaltennamen zufälligen Namen, gibt es noch dieses seltsame Problem. Wenn ->select('result AS exampleVariable') hinzugefügt wird abgefragt, result kehrt true, aber exampleVariable kehrt 'win' - so dachte ich Namen Spalte Problem, aber Problem gelöst ist nicht einmal umbenannt ich diese Spalte ...

+0

"[...] beim Zugriff durch eloquent" Können Sie Ihnen eloquente Code schreiben? Es könnte für uns einfacher sein, dieses Problem zu reproduzieren, wenn Sie Ihren tatsächlichen Code sehen. –

+0

@TimLewis - '$ var = SpielerResult :: where ('event_id', $ ereignis-> id) -> whereNotIn ('player_id', [$ player-> id]) -> first();' – Nidecker

+0

Bearbeiten Sie es in die Frage bitte; poste nicht als Kommentar. –

Antwort

1

Stellen Sie sicher, Sie nicht haben Funktionen wie:

function getResultAttribute 

oder

function result 

auch Sie könnten bei

schauen interessiert sein

Methode wie es einige Umwandlungen vor dem Zurückgeben von Array machen kann.

Wenn sie nicht direkt in Ihrem Modell vorhanden sind, sollten Sie alle benutzerdefinierten Merkmale überprüfen, die in Ihrem Modell verwendet werden, da diese Funktionen möglicherweise in diesen Merkmalen definiert sind.