Laravel의 leftJoin에서 폐쇄를 사용하면 여러 조건을 지정할 수 있습니다
5843 단어 Laravel
-- 家族の情報を全て取得、5歳以下の子供がいればその情報も一緒に
SELECT * FROM families
INNER JOIN persons
ON families.id = persons.family_id
AND persons.age <= 5;
Laravel의 join
leftJoin
방법, 바로 이런 느낌입니다.Family::leftJoin('persons', 'families.id', '=', 'persons.family_id')->get();
두 번째 파라미터~4번째 파라미터에는 ON문장의 조건이 있기 때문에 두 번째 나이의 조건을 지정할 수 없습니다곤란하지만 수첩을 자세히 읽어보니 두 번째 파라미터를 폐합으로 지정할 수 있었다
Family::leftJoin('persons', function ($join) {
$join->on('families.id', '=', 'persons.family_id')
->where('persons.age', '<=', 5)
})->get();
이렇게 하면 오케이!join
의 기능이기 때문에 leftJoin
한정이 아니라 다양한 기능을 사용할 수 있습니다.join의 코드는 이렇다.
public function join($table, $first, $operator = null, $second = null, $type = 'inner', $where = false)
{
$join = $this->newJoinClause($this, $type, $table);
if ($first instanceof Closure) {
$first($join);
$this->joins[] = $join;
$this->addBinding($join->getBindings(), 'join');
}
else {
$method = $where ? 'where' : 'on';
$this->joins[] = $join->$method($first, $operator, $second);
$this->addBinding($join->getBindings(), 'join');
}
return $this;
}
Reference
이 문제에 관하여(Laravel의 leftJoin에서 폐쇄를 사용하면 여러 조건을 지정할 수 있습니다), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tomoeine/items/0cab3a6d85a14ce92f24텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)