2017-11-20 6 views
1

モデルとして文字列が返されますeloquentを介してアクセスするとtrue(真偽値)として返されます。PHP - - Laravelブール

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

dd($var)で私が(モデルに)キャストしようとしたが、それでも同じ '

に勝つ「attributes結果はoriginal結果で、真であるのは' ...

、なぜそれがありますブール値として返されますか?それを修正する方法は?おかげ

EDIT:

私は@TimLewisが問題を解決し、それでも私はランダムな名前に列名に改称、この奇妙な問題がまだあると思いました。私は

+0

「雄弁にアクセスするときに...」あなたに優しいコードを投稿できますか?実際のコードを見て、この問題を再現することが簡単になるでしょう。 –

+0

@TimLewis - '$ var = PlayerResult :: where( 'event_id'、$ event-> id) - > whereNotIn( 'player_id'、[$ player-> id]) - > first();' – Nidecker

+0

ご質問ください。コメントとして投稿しないでください。 –

答えて

1

は、あなたが持っていないことを確認してください...列の名前が問題であると思ったが、問題であっても、私はその列に改称解決されていない - ->select('result AS exampleVariable')result戻りtrueは、照会に追加しましたが、exampleVariable戻っ'win'さ 以下のような関数:

function getResultAttribute 

または

function result 

はまた、あなたは

を見て興味があるかもしれません
function toArray() 

メソッドは配列を返す前にいくつかのキャストを行うことができます。

モデルに直接存在しない場合は、それらの特性で定義されている可能性があるため、モデルで使用されているカスタム特性を確認する必要があります。