как использовать Laravel Scope в отношениях? - PullRequest
0 голосов
/ 03 марта 2019

Я использую laravel У меня есть две модели

Product

class Product extends Model
{
    public function productcategories(){
      return $this->hasOne('App\Product\Productcategorie','CategoryID','ProductCategoryId');
    }    
}

и Productcategorie

class Productcategorie extends Model
{
  protected $primaryKey = 'CategoryID';

  public function product(){
    return $this->belongsToMany('App\Product\Product','ProductCategoryId','CategoryID');
  }

  public function scopeCp($query,$id){
    return $query->where('categoryparent_id', '=', $id);
  }
}

Модель продукта имеет прицел Cpscope

и у меня есть ProductController с функцией

function productCatgoryPaFilter(Request $request){
  $categories=  Categoryparent::with('categories')->get();
  $id=$request->id;
  return  $product = Product::with('productcategories')->with('productoption.option')->orderBy('created_at','DESC')->get();
}

Я хочу получить все продукты с categoryparent_id, равным переданному параметру в области видимости, как я могу это сделать?

1 Ответ

0 голосов
/ 03 марта 2019

Если вы хотите фильтровать данные в реляционной модели, используйте whereHas().Хотя я не проверял, попробуйте

Product::whereHas('productcategories', function ($query) use($id) {
    $query->cp($id);
})
->orderBy('created_at','DESC')->get()
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...