찾다

 >  Q&A  >  본문

쿼리에 참여하는 방법을 잘 아는 Laravel

가설

원피스thread(帖子) 预加载 comments(评论)和 comments.user (댓글을 달아주신 유저)

보통 코드 한 줄이면 얻을 수 있습니다

으아악

이것에는 문제가 없으며 아주 잘 쿼리해서 표시할 수 있습니다.

으아악

하지만 현재 요구 사항은 댓글을 단 사용자 데이터를 삭제하면 관련 댓글 데이터가 표시될 수 없으며, 그렇지 않으면 정보가 불완전해질 것이라는 것입니다(이것은 정상적인 요구겠죠?)

그렇다면 논리적으로는 inner join 查询就可以过滤掉不符合的数据.
LaravelEloquent 目前我只查到with방법

밖에 없습니다.

이 요구사항은 YiiActiveRecord를 통해 쉽게 해결할 수 있습니다. 으아악

잘 모르는 부분이 있어서 해당 분야 전문가에게 해결 방법을 문의하고 싶습니다!Laravel

PHP中文网PHP中文网2812일 전1394

모든 응답(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里都是有实现的
    laravel 目前我看到的只有一个with

    rails里有 preloadincludesEager loadJoins, 可以来区别eager loading数据的方式.
    这里有篇文章来讲解
    http://www.mamicode.com/info-...

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

    其他的我就不查了. 并不是我要损laravel, 我是到现在也没有觉得laravelEloquentrails에는 preload, includes, Eager load, Joins가 있습니다. 여기에 데이터를 eager loading하는 다양한 방법이 있습니다.
    설명하는 기사는 다음과 같습니다.
    http://www.mamicode.com/info-...

    🎜그리고 YiiActiveRecord에는 with, joinWith(내부 조인, 왼쪽 조인....)도 있습니다. innerJoinWith, 필요에 따라 eager loading 수행🎜 🎜다른 건 확인하지 않겠습니다. laravel을 손상시키려는 것은 아니지만 laravel에서 Eloquent가 얼마나 강력한지는 아직 생각하지 않습니다. 코드> 🎜

    회신하다
    0
  • 취소회신하다