簡體   English   中英

如果存在Request :: get('xyz')字段,則添加orderBy

[英]Add the orderBy if the Request::get('xyz') field exist

在下面的分頁查詢中,我使用OrderBy方法添加了排序代碼,但在第一次重新加載頁面時出現錯誤,因為沒有排序,並且在那里設置了順序字段。 如果存在或如何設置為null,我如何調整它。

->select(array(
                'to_jobs.rec_id',
                'to_jobs.contarct_code',
                'to_jobs.job_num',
                'to_sites.site_name',
                'to_sites.postcode',
                'to_sites.site_id' 
                ))
            ->orderBy(Request::get('sort'), Request::get('order'))
            ->leftjoin('to_sites', 'to_jobs.fk_site_id', '=', 'to_sites.site_id')
            ->paginate(10);

如果您使用的是Eloquent,則可以使用本地范圍

對於查詢構建器查詢,您可以嘗試使用when()

->when(request()->has('sort'), function ($q) {
    return $q->orderBy(request()->sort, request()->order);
})

您只需使用if語句來檢查sort輸入,然后構建您的分頁。

嘗試這個。

$query->select(array(
        'to_jobs.rec_id',
        'to_jobs.contarct_code',
        'to_jobs.job_num',
        'to_sites.site_name',
        'to_sites.postcode',
        'to_sites.site_id'
    ))
    ->leftjoin('to_sites', 'to_jobs.fk_site_id', '=', 'to_sites.site_id');
if (Request::has('sort'))
{
    $query->orderBy(Request::get('sort'), Request::get('order'));
}
$query->paginate(10);


參考:

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM