[英]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.