2017-07-31 7 views
0

firstOrFail()はなぜこの雄弁なクエリの結果を変更しますか? ID 300033なぜfirstOrFailはこのクエリの結果を変更しますか?

>>> Organization::find('300048'); 
=> Models\Organization {#889 
    id: 300048, 
    token: "redacted", 
    name: "DAYJK4EGPE", 
    domain: null, 
    created_at: "2017-05-19 17:42:55", 
    updated_at: "2017-05-19 17:42:56", 
    stripe_customer_id: "redacted", 
    referral_snippet: null, 
    primary_business: null, 
    } 
>>> Organization::find('300048')->firstOrFail(); 
=> Models\Organization {#897 
    id: 300033, 
    token: "redacted", 
    name: "123456", 
    domain: "google.com", 
    created_at: "2017-05-17 13:24:23", 
    updated_at: "2017-05-24 15:50:25", 
    stripe_customer_id: "redacted", 
    referral_snippet: null, 
    primary_business: null, 
    } 
>>> 

モデル は私のデータベースの最初のですが、私はそれが上と呼ばれているコレクションfirstOrFail()で唯一の結果だったので、それはまだ、ID 300048で組織を返すことが期待されます。

+0

私はそれを 'where( 'id'、 '300048') - > firstOrFail()'に変更できますが、それはばかげているようです。私は 'find()'を使いたいです。 – Henry

+0

D'oh、 'findOrFail()'を使う必要があります... – Henry

+1

他人を助けるかもしれないので、あなた自身の質問への回答として投稿してください。 – milo526

答えて

2

whereを使用すると、firstOrFailが最初のレコードを取得することになります。where句を使用しないと、DBの最初のレコードが取得されます。

あなたが把握したとおり、そのIDを持つ最初のレコードを見つけるには、findOrFailが必要です。

2

Organization::findOrFail('300048');を使用してください。

例外をスローする詳細については、Laravel docsを参照してください。

関連する問題