59104


whereで、A OR B がuser_idと一致したカラムのデータ(score)を取得すると書きたいのですが、いまいちわからず、悩んでおります。

[code]

    $score = Contract::where('a' , 'b')->where('user_id')->get();
    
[/code]

これで正しいでしょうか。


CC BY-SA 4.0
2019-09-16T10:12:40.980
59095
2019-09-17T00:47:45.193
2019-09-16T10:28:02.710
32986
35794
question
php laravel
LaravelのWhereの使い方


Whereメソッドは  
第一引数がカラム名  
第二引数がオペレータ  
第三引数が比較する値です。

まず`Where user_id = 'a'`を行いたい場合は

[code]

    $score = Contract::where('user_id', "=", "a")->get();
    
[/code]

ただし、第二引数のイコールは省略できるので

[code]

    $score = Contract::where('user_id', "a")->get();
    
[/code]

という書き方ができます。

これをORでつなげたい場合はorwhereメソッドをつなげて書きます。  
例えば`Where user_id = 'a' OR user_id = 'b'`というWhere句を作りたい場合は

[code]

    $score = Contract::where('user_id', "a")->orWhere('user_id', "b")->get();
    
[/code]

上記のように記述します。

そもそもLaravelのEloquentORMはデータベースの取り回しの理解をしている必要があります。  
まずはデータベース周りのメソッドやモデルを理解をしましょう  
特にWhereメソッドについてはデータベースのクエリビルダーのドキュメントに詳しく記述してあります。

参考サイト  
<https://readouble.com/laravel/5.7/ja/eloquent.html>  
<https://readouble.com/laravel/5.7/ja/queries.html>


CC BY-SA 4.0
2019-09-17T00:47:45.193
59104
2019-09-17T00:47:45.193
22665
59095
answer