簡體   English   中英

Laravel - 方法分頁不存在

[英]Laravel - Method paginate does not exist

我試圖從控制器中分頁命令

 $orders = Order::openorders()->paginate(15);

在模型中我有這個:

public static function stats()
{
    return Stats::where(\DB::raw('SUBSTRING(statistics, 5, 5)'), '!=','D')->where('statistics', 'NOT LIKE', '%F%')->where('statistics', 'NOT LIKE', '%X%')->get()->sortByDesc('date');
}

它顯示此消息:

(1/1) BadMethodCallException 
Method paginate does not exist.

方法鏈是指this你不能靜態鏈和公共法這樣但是你可以利用的范圍() 。

像這樣更改方法的名稱。

public  function scopeOpenorders($query)
{
    return $query->where(\DB::raw('SUBSTRING(cu_stat, 1, 1)'), '!=','C')
         ->where('cu_stat', 'NOT LIKE', '%D%')->where('cu_stat', 'NOT LIKE', '%X%')
         ->orderBy('cu_date','DESC');
}

您可以在此處了解有關示波器的更多信息https://laravel.com/docs/5.6/eloquent#local-scopes

希望這可以幫助。

get結果后,您無法使用paginate方法。 因此發生錯誤,

    public static function openorders() {
           return Order::where(\DB::raw('SUBSTRING(cu_stat, 1, 1)'), '!=','C')->where('cu_stat', 'NOT LIKE', '%D%')->where('cu_stat', 'NOT LIKE', '%X%')->orderBy('cu_date', 'desc');
     }

我希望這能幫到您

而不是sortByDesc,我用過

orderBy('cu_date', 'desc')->paginate(15)

在模型中,它工作

模型:

return Order::where(\DB::raw('SUBSTRING(cu_stat, 1, 1)'), '!=','C')->where('cu_stat', 'NOT LIKE', '%D%')->where('cu_stat', 'NOT LIKE', '%X%')->orderBy('cu_date', 'desc')->paginate(15);

和控制器:

$orders = Order::openorders();

型號:

public static function openorders($sort='cu_date',$sort_type='asc',$count=10)
{
    return Order::where(\DB::raw('SUBSTRING(cu_stat, 1, 1)'), '!=','C')->where('cu_stat', 'NOT LIKE', '%D%')->where('cu_stat', 'NOT LIKE', '%X%')->orderBy($sort, $sort_type)->paginate($count);
}

控制器:

$orders=Order::openorders('cu_date','asc',1);

暫無
暫無

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

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