php - Laravel 6 - whereHasMorph 关系返回空
问题描述
我是 laravel 的新手Polymorphic Relationship
。我有 2 张桌子Supplier
,Product
而且Category
每张桌子都有,所以我决定使用Polymorphic Relationship
. 我想查询supplier-category
但它的返回empty
数组。
// 我的类别模型
class Category extends Model
{
protected $fillable = ['categorizable_type', 'categorizable_id'];
public function categorizable()
{
return $this->morphTo();
}
}
// 我的供应商模型
class Supplier extends Model
{
protected $fillable = ['name', 'email', 'phone'];
public function categories()
{
return $this->morphMany(\App\Category::class, 'categorizable');
}
}
// 我的产品型号
class Product extends Model
{
protected $fillable = ['product_code', 'product_name'];
public function categories()
{
return $this->morphMany(\App\Category::class, 'categorizable');
}
}
// 而在 SupplierController 我想查询categorizable_type
public function index(Request $request)
{
// $product = Category::all();
$product = Category::whereHasMorph('categorizable', Supplier::class , function($query){
$query->where('categorizable_type', 'like', '%foo%');
})->get();
dd($product);
// return response()->json($product);
}
提前致谢...
解决方案
我通过更改我的代码使其工作,如下所示
$product = Category::whereHasMorph('categorizable', Supplier::class)->get();
推荐阅读
- node.js - Discord JS Cooldown 与验证
- load-balancing - 将请求转发到正确的分片
- arrays - Neo4j foreach 子句循环遍历字符串数组的元素
- yocto - 无法挂载dax格式
- keras - 使用 Sentiment140 数据的 Tensorflow hub-NNLM 词嵌入给出了输入形状错误
- css - 如何在 WooCommerce 上为收费赋予独特的风格
- sql - R 的 SQL 分析函数的模拟
- c# - 使用 DapperExtensions 映射时如何指定架构?
- python - Pandas:如何删除包含非英文字符的字符?
- php - PHP8 - APCuIterator::__construct(): Regular expressions support is not enabled, please enable PCRE for APCuIterator regex support