タグ付けされた質問 「laravel-query-builder」


21
Laravel Eloquentを使用して複数のWhere句クエリを作成する方法
Laravel Eloquentクエリビルダーを使用していて、WHERE複数の条件で句が必要なクエリがあります。動作しますが、エレガントではありません。 例: $results = User::where('this', '=', 1) ->where('that', '=', 1) ->where('this_too', '=', 1) ->where('that_too', '=', 1) ->where('this_as_well', '=', 1) ->where('that_as_well', '=', 1) ->where('this_one_too', '=', 1) ->where('that_one_too', '=', 1) ->where('this_one_as_well', '=', 1) ->where('that_one_as_well', '=', 1) ->get(); これを行うより良い方法はありますか、またはこの方法を使用する必要がありますか?



13
Laravel Eloquentの「With()」関数を使用して特定の列を取得する
テーブルが2つUserありPostます。1つUserは多数をposts持ち、1つpostは1つだけに属しuserます。 私のUserモデルにはhasMany関係があります... public function post(){ return $this->hasmany('post'); } そして、私のpostモデルにはbelongsTo関係があります... public function user(){ return $this->belongsTo('user'); } 次に、これらの2つのテーブルを使用して結合したいのですがEloquent with()、2番目のテーブルの特定の列が必要です。クエリビルダーを使用できることはわかっていますが、使用したくありません。 Postモデルの中で私が書くとき... public function getAllPosts() { return Post::with('user')->get(); } 次のクエリを実行します... select * from `posts` select * from `users` where `users`.`id` in (<1>, <2>) しかし、私が欲しいのは... select * from `posts` select id,username from `users` where `users`.`id` …

20
Laravel 3/4で実行されたクエリを取得する
LaravelクエリビルダーまたはEloquent ORMを使用して、Laravel 3/4で未加工のSQLクエリを取得するにはどうすればよいですか? たとえば、次のようなもの: DB::table('users')->where_status(1)->get(); または: (posts (id, user_id, ...)) User::find(1)->posts->get(); それ以外の場合、少なくとも、実行されたすべてのクエリをlaravel.logに保存するにはどうすればよいですか?

13
Laravel Eloquentの作成と更新
新しいレコードを挿入したり、存在する場合は更新したりするための省略形は何ですか? <?php $shopOwner = ShopMeta::where('shopId', '=', $theID) ->where('metadataKey', '=', 2001)->first(); if ($shopOwner == null) { // Insert new record into database } else { // Update the existing record }

6
QueryBuilderまたはEloquentを使用した追加条件との結合
LaravelクエリビルダーでJOINクエリを使用して条件を追加しようとしています。 <?php $results = DB::select(' SELECT DISTINCT * FROM rooms LEFT JOIN bookings ON rooms.id = bookings.room_type_id AND ( bookings.arrival between ? and ? OR bookings.departure between ? and ? ) WHERE bookings.room_type_id IS NULL LIMIT 20', array('2012-05-01', '2012-05-10', '2012-05-01', '2012-05-10') ); Raw式を使用できることはわかっていますが、SQLインジェクションポイントがあります。クエリビルダーで次のことを試しましたが、生成されたクエリ(および明らかにクエリ結果)は意図したものではありません: $results = DB::table('rooms') ->distinct() ->leftJoin('bookings', function ($join) …
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.