如何使用orWhere创建动态where子句-Laravel 4



我怎么能在Eloquent中写这篇文章,而我正在使用laravel 4?

SELECT * FROM `applicant` WHERE `id`='17' OR `id`='19'

我在想这个

$findIDAUTH = Auth::User()->id;
$findHrsbu = HrSbu::where('staff_id', '=', $findIDAUTH)->get();
$results = Mapplication::MApplication();
foreach($findHrsbu as $HrSbu){
    $results = $results->Where('sbu.id', '=', $HrSbu->sbu_id);
}
$results = $results->get();

如果只是

SELECT * FROM `applicant` WHERE `id`='17'

我可以工作,但如果

SELECT * FROM `applicant` WHERE `id`='17' OR `id`='19' or 'id'='20'

不适用于我,谢谢

您应该将whereIn与子查询一起使用:

$results = Mapplication::whereIn('id', function ($query) {
    $query->from((new HrSbu)->getTable())
          ->select('sbu_id')
          ->where('staff_id', auth()->id());
})->get();

Hi请尝试使用此代码并告诉我,这是laravel的一个选项,因为您使用了类似的方法。。。。

$findIDAUTH  = Auth::User()->id;
$findHrsbu   = HrSbu::where('staff_id', '=', $findIDAUTH)->get();
$results =      Mapplication::MApplication()->where(function($findHrsbu)->where(function($results) use ($findHrsbu) {
foreach($findHrsbu as $HrSbu){ 
   $results->orWhere('sbu.id', '=', $HrSbu->sbu_id);
}
})->get();
感谢大家的回答。。问题已解决我正在使用WhereIn例如:$results->whereIn('sbu.id', '=', array($dataArray));

最新更新