Php 将DB::table与一些筛选器条件一起使用
我想使用laravel查询生成器创建一个过滤器 我有以下代码:Php 将DB::table与一些筛选器条件一起使用,php,laravel,laravel-5.5,Php,Laravel,Laravel 5.5,我想使用laravel查询生成器创建一个过滤器 我有以下代码: $queries = array(); $paginate = 10; $orders = DB::table('orders')->whereNull('deleted_at'); // the filter i want to apply $from = 2018-06-18; $end = 2018-06-20; $orders->whereBetween('orders.created_at', array($
$queries = array();
$paginate = 10;
$orders = DB::table('orders')->whereNull('deleted_at');
// the filter i want to apply
$from = 2018-06-18;
$end = 2018-06-20;
$orders->whereBetween('orders.created_at', array($from, $end));
$queries['dateRange'] = request('dateRange');
// other filters
...
$orders->leftJoin('order_status', 'orders.OrderID', '=', 'order_status.OrderID')
->select('orders.*', 'order_status.Status')
->orderBy('OrderID', 'desc')
->paginate($paginate)
->appends($queries);
问题是,我得到了一个错误-不工作。如果a没有使用leftjoin,我可能会这样使用
($orders = Order::query();).
如何正确使用带有一些过滤器的DB::table查询,或者是另一个更好的解决方案
更新
更具体地说:
此代码适用于:
$orders = DB::table('orders')->whereNull('deleted_at')
->leftJoin('order_status', 'orders.OrderID', '=', 'order_status.OrderID')
->select('orders.*', 'order_status.Status')
->orderBy('orders.OrderID', 'desc')
->paginate($paginate)
->appends($queries);
此代码不起作用:
$orders = DB::table('orders')->whereNull('deleted_at');
$orders->leftJoin('order_status', 'orders.OrderID', '=', 'order_status.OrderID')
->select('orders.*', 'order_status.Status')
->orderBy('orders.OrderID', 'desc')
->paginate($paginate)
->appends($queries);
我已经改变了这种方法,现在它起作用了。问题是我必须在另一行指定分页:
$orders = DB::table('orders')->whereNull('deleted_at');
// date filter
$orders->whereBetween(DB::raw('DATE(orders.created_at)'), array($from, $to));
$orders->leftJoin('order_status', 'orders.OrderID', '=', 'order_status.OrderID')
->select('orders.*', 'order_status.Status')
->orderBy('orders.OrderID', 'desc');
// the paginate and appends write on new line :)
$orders = $orders->paginate($paginate)->appends($queries);
您可以共享错误消息吗?未定义的属性:Illumb\Database\MySqlConnection::$OrderID在视图$orders->OrderID中…和o在…上…无法访问$orders中的数据您应该在->OrderBy('OrderID','desc')中向OrderBy添加表前缀。。我已经准备好试着。。。同样的错误:)为什么不引用日期$from='2018-06-18';