如何查询变形到关系
how to Querying Morph To Relationships
尝试在文档的帮助下查询 laravel 8 中的 Polymorphic,但显示错误
BadMethodCallException: Call to undefined method App\Models\Product::keywordable()
这是我的模型
Keyword.php
public function products()
{
return $this->morphedByMany(Product::class, 'keywordable');
}
Product.php
public function keywords()
{
return $this->morphToMany(Keyword::class, 'keywordable');
}
查询
$products = Product::whereHasMorph(
'keywordable',
[Keyword::class],
function (Builder $query) use ($request) {
$query->where('slug', $request->keyword);
}
)->get();
Keywordable 与您的产品型号无关。
您可以使用 whereHas
方法
按关键字搜索
使用 whereHas 方法
$products = Product::wherHas( 'keywords', function ($query) use ($request) {
$query->where('slug', $request->keyword);
})->get();
如果您有其他关系,请使用 whereHasMorph
$products = Product::wherHasMorph( 'keywords', [Keyword::class], function ($query) use ($request) {
$query->where('slug', $request->keyword);
})->get();
尝试在文档的帮助下查询 laravel 8 中的 Polymorphic,但显示错误
BadMethodCallException: Call to undefined method App\Models\Product::keywordable()
这是我的模型
Keyword.php
public function products()
{
return $this->morphedByMany(Product::class, 'keywordable');
}
Product.php
public function keywords()
{
return $this->morphToMany(Keyword::class, 'keywordable');
}
查询
$products = Product::whereHasMorph(
'keywordable',
[Keyword::class],
function (Builder $query) use ($request) {
$query->where('slug', $request->keyword);
}
)->get();
Keywordable 与您的产品型号无关。
您可以使用 whereHas
方法
使用 whereHas 方法
$products = Product::wherHas( 'keywords', function ($query) use ($request) {
$query->where('slug', $request->keyword);
})->get();
如果您有其他关系,请使用 whereHasMorph
$products = Product::wherHasMorph( 'keywords', [Keyword::class], function ($query) use ($request) {
$query->where('slug', $request->keyword);
})->get();