在我的网站上,用户可以查看个人数据,按数据或按日期搜索,并查看分页结果。
我无法使用->where
关键字获取用户的分页数据,其中包含“userID”,需要将其集成到搜索功能中。
但是,我有逻辑错误,并且想知道是否有人可以帮助我。
这是我的控制器
public function index()
{
$q='';
$from = '';
$to = '';
if (Input::get('dateSearchFrom') !='' && Input::get('dateSearchTo') !='') {
$from = Input::get('dateSearchFrom').' 00:00:00.000';
$to = Input::get('dateSearchTo').' 23:59:59.999';
}else if (Input::get('search') !='') {
$q = Input::get('search');
}
if ($q != '') {
$incomes = Income::latest('created_at')->where('user_id', Auth::user()->id)->orWhere('name','like','%'.$q.'%')->orWhere('money','like','%'.$q.'%')->orWhere('created_at','like','%'.$q.'%')->paginate(4);
}else if (Input::get('dateSearchFrom') !='' && Input::get('dateSearchTo') !='') {
$incomes = Income::latest('created_at')->where('user_id', Auth::user()->id)->orWhereBetween('created_at', array($from, $to))->paginate(4);
}else{
$incomes = Income::latest('created_at')->where('user_id', Auth::user()->id)->paginate(4);
}
$incomes->setPath('income');
return view('member.income.list')->with([
'title' => 'Income Data',
'incomes' => $incomes,
]);
}
这是我的模特
use SoftDeletes;
protected $table = 'incomes';
protected $fillable = [
'id',
'name',
'user_id',
'description',
'money'
];
答案 0 :(得分:0)
我在发布之后意识到建议的语法也是错误的。你没有给出错误的方法,因此很难解决你的问题。我找不到Model::latest()
,但我认为你已经覆盖了它。
看起来您正在尝试按降序对created_at进行结果排序。如果是这样,这将是正确的语法:
$incomes = Income::where('user_id', Auth::user()->id)->orderBy('created_at', 'desc')->paginate(4);
我错误地认为->get()
是必要的,因为我相信它在我的副本上有效,但我遇到了错误。
您是否尝试过使用->get()
?像这样:
$incomes = Income::latest('created_at')->where('user_id', Auth::user()->id)->get()->paginate(4);`