在我的网站上,用户可以看到个人数据,按数据或日期搜索,并看到分页结果。
我有麻烦得到一个用户的分页数据与他的"userID"使用->where
关键字需要集成在一个搜索功能。
然而,我有逻辑错误,想知道是否有人可以帮助我。
这是我的控制器
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'
];
更新
我意识到在我发布这个之后,建议的语法也是不正确的。你没有给出太多的错误,所以很难解决你的问题。我找不到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);`