検索

ホームページ  >  に質問  >  本文

Laravelはクエリを結合する方法について雄弁です

仮定

ワンピースthread(帖子) 预加载 comments(评论)和 comments.user(コメントしたユーザー)

通常は 1 行のコードで取得できます

リーリー

これには問題はなく、非常にうまくクエリと表示ができます。

リーリー

でも、現状の要望としては、コメントを付けたユーザーデータを削除すると、当然関連するコメントデータが表示されなくなり、情報が不完全になってしまうということです(これは普通の要望ですよね?)

となると論理的にはinner join 查询就可以过滤掉不符合的数据.
LaravelEloquent 目前我只查到withメソッド

しかありません

このニーズは YiiActiveRecord を通じて簡単に解決できます リーリー

あまり詳しくないので、この分野の専門家に解決方法を聞きたいです。よろしくお願いします。

PHP中文网PHP中文网2797日前1382

全員に返信(6)返信します

  • 習慣沉默

    習慣沉默2017-05-16 16:53:58

    laravelのクエリビルダーの結合はデフォルトで内部結合動作になります、マニュアルにはそう記載されています

    返事
    0
  • 给我你的怀抱

    给我你的怀抱2017-05-16 16:53:58

    リーリー

    返事
    0
  • 巴扎黑

    巴扎黑2017-05-16 16:53:58

    Eloquent ORM には直接結合クエリ条件がありませんが、前述のように回避策があります。
    ただし、パフォーマンス上の理由から、私は通常 ORM を使用しません。クエリビルダーを使用しています。

    返事
    0
  • PHP中文网

    PHP中文网2017-05-16 16:53:58

    リーリー

    返事
    0
  • 巴扎黑

    巴扎黑2017-05-16 16:53:58

    リレーションシップに join を書くだけです。 ->hasMany()->join()->where() 好きなように書くことができます。

    返事
    0
  • 世界只因有你

    世界只因有你2017-05-16 16:53:58

    実は私が質問しているのは、主に使用方法に関する質問です。

    ここです

    rails里都是有实现的
    laravel 目前我看到的只有一个with

    データメソッドrails里有 preloadincludesEager loadJoins, 可以来区别eager loading解説記事はこちら
    http://www.mamicode.com/info-...

    そして

    YiiActiveRecord也有with, joinWith(inner join, left join ....) innerJoinWith, 来根据需求做eager loading

    他のものはチェックしません

    何がそんなに強いのかlaravel, 我是到现在也没有觉得laravelEloquentを傷つけたいわけではありません。

    返事
    0
  • キャンセル返事