Php 可以在Laravel中拆分查询生成器吗?
可以像这样拆分查询吗Php 可以在Laravel中拆分查询生成器吗?,php,laravel,Php,Laravel,可以像这样拆分查询吗 public function getStatuses($dates) { $query = DB::table('tickets'); if ($dates['from']) $query = $query->where('from', $dates['from']); if ($dates['to']) $query = $query->where('to', $dates['to']);
public function getStatuses($dates)
{
$query = DB::table('tickets');
if ($dates['from'])
$query = $query->where('from', $dates['from']);
if ($dates['to'])
$query = $query->where('to', $dates['to']);
$query = $query->select('Active');
return $query->get()->toArray();
}
是的,这是可能的。但不要重新分配给同一个变量,否则可能会把它搞乱:
public function getStatuses($dates)
{
$query = DB::table('tickets');
if ($dates['from'])
$query->where('from', $dates['from']);
if ($dates['to'])
$query->where('to', $dates['to']);
$query->select('Active');
return $query->get()->toArray();
}
在Laravel 4中,有必要将get方法指定给一个变量
public function scopeGetPosts($query, $this_user = NULL){
$results = DB::table('post')
->select('*')
->where('post_status','=','publish');
if( $this_user != NULL ){
$results->where('post_author','=',$this_user->user_id);
}
$data = $results->orderBy('created_at', 'desc')
->get();
if( empty( $results ) )
$data = 'no results';
return $data;
}
在拉拉维尔雄辩地说:
$query = ModelName::where('status',1);
if($userId){
$query->where('user_id',$userId);
}
if($limit){
$query->limit($limit);
}
$result = $query->get();
我尝试了类似的方法,但对于仍在为该选项搜索解决方案的人来说,它并没有给出我想要的结果。。使用when()。。正如这里详述的。。。