具有分页功能的Laravel 5中的语法,搜索功能

时间:2015-08-22 12:30:17

标签: php laravel pagination laravel-5

在我的网站上,用户可以查看个人数据,按数据或按日期搜索,并查看分页结果。

我无法使用->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'
];

1 个答案:

答案 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);`