当前位置: 首页 > 知识库问答 >
问题:

如何限制透视表的访问?拉维尔

阎祖鹤
2023-03-14

我有桌子:

用户

  • id
  • 姓名

企业

  • id
  • 姓名

公司/用户

  • company_id
  • user_id

表有多对多的关系。

由于关系复杂,我不知道如何做这个限制,当用户可以看到由这个用户创建的公司。(

现在我有这个,但是用户可以看到任何公司

公司控制器:

public function show($company_id)
{
    $company = Company::where('id', $company_id)->firstOrFail();

    return view('company.settings', compact('company'));
}

所以提示我请如何让用户只能看到这个用户创建的公司。

共有2个答案

寿子默
2023-03-14

由于它是多对多的关系,你可以将一个公司映射到许多用户,也可以将一个用户映射到许多公司。检查您是否没有错误地将公司分配给许多用户

上面的代码也可以这样写

public function show($company_id)
{
    $company = Company::findOrFail($company_id);

    return view('company.settings', compact('company'));
}
方季同
2023-03-14

您可以这样做:

public function show($company_id)
{
    $company = auth()->user()->companies()->findOrFail($company_id);
    return view('company.settings', compact('company'));
}

它将把公司范围限定为当前登录的用户(通过User模型上的多对多关系)。如果没有找到,则返回404。

 类似资料:
  • 我正在组装一个简单的购物车系统,使用Laravel和Vue.js,来出售照片。每张照片都有不同的尺寸,每个尺寸的价格都不同。 我有以下表格: 我正在使用Vue.js对我的购物车控制器进行API调用,以操纵购物车。当用户单击“添加到篮子”按钮时,它会传递照片id和大小id。当然,我想从数据库而不是客户端获取所选项目的价格,以防止任何无礼行为,这自然意味着查询pivot表。 我的问题是,使用传递给控制

  • 在Class内部,可以有属性和方法,而外部代码可以通过直接调用实例变量的方法来操作数据,这样,就隐藏了内部的复杂逻辑。 但是,从前面Student类的定义来看,外部代码还是可以自由地修改一个实例的name、score属性: >>> bart = Student('Bart Simpson', 98) >>> bart.score 98 >>> bart.score = 59 >>> bart.sc

  • 在Class内部,可以有属性和方法,而外部代码可以通过直接调用实例变量的方法来操作数据,这样,就隐藏了内部的复杂逻辑。 但是,从前面Student类的定义来看,外部代码还是可以自由地修改一个实例的name、score属性: >>> bart = Student('Bart Simpson', 59) >>> bart.score 59 >>> bart.score = 99 >>> bart.sc

  • 我有3个模型 1-书: 2-用户 3-书签用户 bookuser迁移: 我试图得到所有的书籍与喜欢的只是当前的用户: 这是我得到的: 我如何访问数据透视表...或者如何得到那样的??我正在尝试,但id不起作用

  • 问题内容: 我正在编写Java应用程序,目前正在处理所有Apple本机LAF内容。我试图自定义应用程序菜单,但发现需要使用com.apple.eawt.Application来进行此操作。但是,当我尝试导入该类时,我的IDE会说: 我正在 Mac OS X 10.9上* 使用 Eclipse 使用 JDK 1.7 更新45 。该 rt.jar的 是在类路径中,但事情很不高兴。我该如何解决? * 问