![](/img/trans.png)
[英]How to alias a table in Laravel Eloquent queries (or using Query Builder)?
[英]Concatenate queries using Eloquent Builder
如何使用Eloquent Builder連接查詢?
我正在根據條件(where子句)構建查詢,並從URL進行限制和偏移。 然后將這些查詢傳遞給->get()
方法以獲取結果。 我想使用口才而不是查詢生成器。
這是您雄辯地構建查詢的方式(我給出了使用多個where子句的示例):
$result = ModelName::where('key_1', '=' , 'value_1')
->where('key_2', '>', 'value_2')
->take(4)
->offset(2)
->get()
take()方法會將結果數限制為4,偏移量為2。
http://laravel.com/docs/5.0/eloquent
更新
基於OP在這里https://laracasts.com/discuss/channels/general-discussion/eloquent-query-builder的問題,我正在更新我的答案。
您可以執行以下操作:
if($params)
{
$query = $this->model;
foreach($params['search'] as $param)
{
$query = $query->where($param['where'],'=',$param['value']);
}
if (isset($params['start']))
{
$query = $query->offset($params['start'] );
}
if(isset($params['count']))
{
$query = $query->take($params['count']);
}
if (isset($params['sortColumn']))
{
$ascending = $params['ascending'] == 'true' ? 'ASC' : 'DESC';
$query = $query->orderBy($params['sortColumn'], $ascending);
}
}
$query->get();
您需要的是再次將功能結果分配給模型。
你有過:
if($params)
{
foreach($params['search'] as $param)
{
$this->model->where($param['where'],'=',$param['value']);
}
if (isset($params['start']))
{
$this->model->offset($params['start'] );
}
if(isset($params['count']))
{
$this->model->take($params['count']);
}
if (isset($params['sortColumn']))
{
$ascending = $params['ascending'] == 'true' ? 'ASC' : 'DESC';
$this->model->orderBy($params['sortColumn'], $ascending);
}
}
$this->model->get();
並且您需要使用:
if($params)
{
foreach($params['search'] as $param)
{
$this->model = $this->model->where($param['where'],'=',$param['value']);
}
if (isset($params['start']))
{
$this->model = $this->model->offset($params['start'] );
}
if(isset($params['count']))
{
$this->model = $this->model->take($params['count']);
}
if (isset($params['sortColumn']))
{
$ascending = $params['ascending'] == 'true' ? 'ASC' : 'DESC';
$this->model = $this->model->orderBy($params['sortColumn'], $ascending);
}
}
$data = $this->model->get();
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.