라라벨 4 곳 또는 및 또는 함께 사용하여 쿼리하지 팬들의 박수를 받았다.

여기서 내가 말하는 '어떻게 (a = 1, b = 1), (c = 1 또는 d = 1)'

내가 좀 더 복잡한 SQL 쿼리를 사용하여 대한 기초형상 돼?

해결책

올바르게 사용하는 [매개변수입니다 그룹짓기] [1] ([라라벨 4.2] [2]). 예를 들어, 다음과 같은 것이 원인이 될 단축시킵니다 it& # 39; d

Model::where(function ($query) {
    $query->where('a', '=', 1)
          ->orWhere('b', '=', 1);
})->where(function ($query) {
    $query->where('c', '=', 1)
          ->orWhere('d', '=', 1);
});

[1]: https://laravel.com/docs/master/queries # 매개변수입니다 그룹짓기 [2]: https://laravel.com/docs/4.2/queries # 고급 어디에

해설 (2)

A, b,c, d 4 라라벨 매개 변수를 사용하려면

Model::where(function ($query) use ($a,$b) {
    $query->where('a', '=', $a)
          ->orWhere('b', '=', $b);
})
->where(function ($query) use ($c,$d) {
    $query->where('c', '=', $c)
          ->orWhere('d', '=', $d);
});
해설 (0)

39, 라라벨 괄호 사용하려면 4gbit/s 및 don& t forget return&lt br/>;

A, b 에서 $ $ 사용해야 하는 라라벨 4 (최소한) 괄호 안에 있다 (예:

<! - begin 스니핏: php 숨기십시오: &gt 거짓값 -;

$a = 1;
$b = 1;
$c = 1;
$d = 1;
Model::where(function ($query) use ($a, $b) {
    return $query->where('a', '=', $a)
          ->orWhere('b', '=', $b);
})->where(function ($query) use ($c, $d) {
    return $query->where('c', '=', $c)
          ->orWhere('d', '=', $d);
});

끝 - &lt 스니핏 >;! 이건 내 결과:. ! [입력하십시오. 이미지 여기에 설명을] [1]

해설 (1)

39 을 넣다 you& 또는 조건, t, re 루프을 don& 할 수 있는 두 번째 $ # 39 에서 다른 게시물 query-&gt. (사실 제가 don& # 39, t think you 사용할 필요가 있는 경우, 일반적으로 오르휘레 네스트된 creditbank. 간소화하는지 됩니다)

$attributes = ['first'=>'a','second'=>'b'];

$query->where(function ($query) use ($attributes) 
{
    foreach ($attributes as $key=>value)
    {
        //you can use orWhere the first time, doesn't need to be ->where
        $query->orWhere($key,$value);
    }
});
해설 (1)
  • $ $ $ $ a, b, c, d 에서 값을 쿼리하지 * 동적임 수 있습니다.
 ->where(function($query) use ($a, $b)
        {
            $query->where('a', $a)
                  ->orWhere('b',$b);
        })
 ->where(function($query) use ($c, $d)
        {
            $query->where('c', $c)
                  ->orWhere('d',$d);
        })
해설 (1)
  • 앨리어스가 라라벨 Eloquent:* 사용
$a='foo', $b='bar', $c='john', $d='doe';

Coder::where(function ($query) use ($a, $b) {
    $query->where('a', '=', $a)
          ->orWhere('b', '=', $b);
})->where(function ($query) use ($c, $d) {
    $query->where('c', '=', $c)
          ->orWhere('d', '=', $d);
})->get();
  • 가 생산하는 like:* 쿼리하지
SELECT * FROM <table> WHERE (a='foo' or b='bar') AND (c='john' or d='doe');
해설 (0)

조금 정돈 쿼리하지 사용할 수도 있습니다, 다음과 같은 일을 할 수 있도록 셨으며 범위

Invoice::where('account', 27)->notPaidAt($date)->get();

그럼 모델에서

public function scopeNotPaidAt($query, $asAt)
{
    $query = $query->where(function ($query) use ($asAt) { 
        $query->where('paid', '=', '0000-00-00')->orWhere('paid', '>=', $asAt); 
    });
    return $query;    
}
해설 (0)

나중에 다른 비트맵이나 찼음을 적용할 수 있는 상태이며, 첫 번째 벽이거나 쿼리하지 수도 있습니다.

$model = Model::where('a',1)->orWhere('b',1);

이제 다른 조건을 적용하십시오 있는 '모델' 변수 $

$model1 = $model->where('c',1)->orWhere('d',1)->get();
해설 (0)

또 다른 방법을 사용하지 않고 양식

데이터베이스: 주식 Id, 이름, company_name exchange_name, 상태, 열: ! [입력하십시오. 이미지 여기에 설명을] [1]

  $name ='aa'
  $stocks = DB::table('stocks')
            ->select('name', 'company_name', 'exchange_name')
            ->where(function($query) use ($name) {
                $query->where('name', 'like', '%' . $name . '%')
                ->orWhere('company_name', 'like', '%' . $name . '%');
            })
            ->Where('status', '=', 1)
            ->limit(20)
            ->get();
해설 (0)
YourModel::where(function ($query) use($a,$b) {
    $query->where('a','=',$a)
          ->orWhere('b','=', $b);
})->where(function ($query) use ($c,$d) {
    $query->where('c','=',$c)
          ->orWhere('d','=',$d);
});
해설 (0)

Sql 브래킷에 콜백하는 기능을 사용하기 위한 최선의 방법을 사용하여 라라벨 팬들의 박수를 받았다.

YourModal::where(function ($q) {
    $q->where('a', 1)->orWhere('b', 1);
})->where(function ($q) {
    $q->where('c', 1)->orWhere('d', 1);
});

&gt. # 39, don& 사용할 수 없는 너 '=' 기호인지, it& # 39 의 따라오렴 기본값으로

고정시켰으니 말하도다 브래킷에 브래킷에 안에 들어 있는 쿼리하지 경우

WHERE (a = 1 OR (b = 1 and c = 5))

YourModal::where(function ($q) {
    $q->where('a', 1)->orWhere(function($q2){
      $q2->where('b', 1)->where('c', 5);
    });
});

고정시켰으니 말하도다 값뿐 만들려는 움직임이

YourModal::where(function ($q) use($val1, $val2) {
    $q->where('a', $val1)->orWhere(function($q2) use($val2){
      $q2->where('b', $val2)->where('c', $val2);
    });
});
해설 (0)