php - 如果条件为真,Laravel 显示关系
问题描述
我对 Laravel 的关系有一些问题。我想保护一个模型,如果用户无权访问它,他就看不到它。它看起来像:
public function product(){
return $this->hasOne(Product::class, 'id', 'product_id')->with('category', 'images');
}
}
所以我尝试了类似的东西:
public function product(){
$user = Auth::check();
if($user){
return $this->hasOne(Product::class, 'id', 'product_id')->with('category', 'images');
}
}
除了 Auth 检查只是为了测试,我需要在这里检查权限,所以我会调用另一个返回 true 或 false 的函数,我将传递 product_id 给它,检查用户是否有权访问该产品,仅此而已。
所以在那种情况下,它总是像这样返回:
在 null 上调用成员函数 addEagerConstraints()
我相信我必须返回一些东西,而不是什么都没有,但没有任何接缝可以工作。但这个想法是在模型中做,我有充分的理由在这里做。任何想法如何处理它?
解决方案
推荐阅读
- python - 你使用什么样的输出来格式化带有注释和字典的 Yaml 文件以获得多种不同的格式
- abp - 我如何将带有数据的模型从数据库传递到 ABP.IO 布局挂钩?
- javascript - Javascript函数不返回变量
- javascript - 如何循环 setTimeout() 以及如何停止循环
- c# - 在压缩数据字节数组的末尾添加一些垃圾字节后,是否可以使用 GZIP 解压缩数据?
- html - flex 容器破坏了边界半径,如何解决这个问题?
- r - 找到给定点的最近多边形
- flutter - 循环颤振/飞镖内部返回不起作用
- regex - 找到所有字母序列并合并,留下六个数字
- r - 按第一个单词对字符串列表进行子集