【问题标题】:Getting another table's string via it's id通过它的 id 获取另一个表的字符串
【发布时间】:2017-08-24 02:32:58
【问题描述】:

我有两张表格,但由于我无法在此处格式化,您可以在imgur img 上查看表格

通配符角色包括department.*blogger.department.* 等字符串

我正在尝试创建角色/权限继承系统,但我坚持创建多对多关系

我尝试使用 eloquent,但由于“通配符”不能/不是模型,我不能使用 eloquent。所以我尝试使用 DB Facade,但我不太擅长 SQL/DB,所以老实说我不知道​​如何做到这一点。

这就是我需要的

  1. 获取角色 ID(例如:admin = 1)
  2. 通过角色 ID 从表 role_wildcards 中获取所有 wildcard_roles
  3. 返回所有通配符字符串的集合

备注

不一定要用eloquent,可以用DB门面

【问题讨论】:

  • 为什么投反对票?
  • 可能是因为你没有尝试过
  • @AndyHolmes 我已经尝试了一些东西,但我不确定如何使用 SQL/DB 来实现
  • 总是值得展示您的尝试,以便人们更好地理解 :)

标签: mysql laravel eloquent laravel-5.4


【解决方案1】:

玩了之后其实很简单

DB::table('role_wildcards')->where('parent_role_id', $this->id)->get();

觉得会更复杂

【讨论】:

    【解决方案2】:

    首先创建从 role_wildcards 到角色的关系

    public function role()
    {
        return $this->belongsTo('App\roles','parent_role_id','id');
    }
    

    然后你使用如下关系

    DB::table('role_wildcards')->with('role')->whereParentRoleId($this->id)->get();
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-11-20
      • 2015-03-23
      • 1970-01-01
      • 1970-01-01
      • 2020-10-09
      相关资源
      最近更新 更多