自定义查询生成器Laravel

时间:2016-05-04 19:09:01

标签: php laravel laravel-5

是否可以在模型中创建自定义查询构建器并返回查询?这不是一个压力问题,但会有所帮助。

/* Controller */

public function getOrders() 
{
   $orders = \App\Order::where('is_new', 1)->getFromUserStore();
}

/* Order Model */

public function getFromUserStore() 
{
  if(\Auth::user()->store->id == 1)
  {
      return $this->get();
  }
  else
  {
      return $this->where('status_id', 1)->get();
  }
}

由于

1 个答案:

答案 0 :(得分:4)

我相信您正在寻找Query Scope

  

范围允许您定义可能的常见约束集   在整个申请过程中轻松重复使用。

/* Controller */  
public function getOrders() 
{
   $orders = \App\Order::where('is_new', 1)->getFromUserStore()->get();
}


/* Order Model */
public function scopeGetFromUserStore($query) 
{
  if(\Auth::user()->store->id == 1)
  {
      return $query;
  }
  else
  {
      return $query->where('status_id', 1);
  }
}