Laravel 如何限制透视表的访问?拉维尔
我有桌子: 使用者Laravel 如何限制透视表的访问?拉维尔,laravel,eloquent,many-to-many,pivot,relationships,Laravel,Eloquent,Many To Many,Pivot,Relationships,我有桌子: 使用者 身份证 名字 公司 身份证 名字 公司/用户 公司id 用户id 表具有多对多关系 因为这对我来说是复杂的关系,所以当用户可以看到这个用户创建的公司时,我找不到方法来限制。(可能经验不足) 现在我有这个,但用户可以看到任何公司 公司控制器: 因此,请提示我如何让用户只能看到由该用户创建的公司。由于它是多对多关系,您可以将一个公司映射到多个用户,也可以将一个用户映射到多个公司。检查您是否没有错误地将公司分配给多个用户 上面的代码也可以这样写 public funct
- 身份证
- 名字
- 身份证
- 名字
- 公司id
- 用户id
因此,请提示我如何让用户只能看到由该用户创建的公司。由于它是多对多关系,您可以将一个公司映射到多个用户,也可以将一个用户映射到多个公司。检查您是否没有错误地将公司分配给多个用户 上面的代码也可以这样写
public function show($company_id)
{
$company = Company::findOrFail($company_id);
return view('company.settings', compact('company'));
}
您可以这样做:
public function show($company_id)
{
$company = auth()->user()->companies()->findOrFail($company_id);
return view('company.settings', compact('company'));
}
它将把公司范围扩大到当前登录的用户(通过
用户
模型上的多对多关系)。如果没有找到,它将返回404。您是否在用户
模型上定义了关系?公共函数companies(){return$this->belongTomany(Company::class,'Company_User');}。public function users(){return$this->belongtomany(User::class,'company_User');}我错了,你需要在公司
模型上使用它,你也有吗?“这个用户”是什么意思?当前登录用户?实际上,关系是有效的,这不是我案例中的问题。在我的案例中,用户可以创建多个公司,他们可以向公司添加用户,因此一个公司可以有多个用户,用户可以有多个公司。这就是为什么我对用户和公司都有关系belongtosay()。我正在使用透视表进行此操作
public function show($company_id)
{
$company = auth()->user()->companies()->findOrFail($company_id);
return view('company.settings', compact('company'));
}