如何在laravel中将第一个循环分配给第二个循环等等?

Posted

技术标签:

【中文标题】如何在laravel中将第一个循环分配给第二个循环等等?【英文标题】:how to assign first loop to second loop and so on in laravel? 【发布时间】:2021-08-30 01:57:01 【问题描述】:

我有一个表 Permission,它具有权限名称、类型、实体,我喜欢在创建角色时将其显示在表中

我通过三个变量从一个类权限的控制器创建一个页面

    $types=Permission::select('type')->groupBy('type')->get();
    $entities=Permission::select('entity')->groupBy('entity')->get();
    $permission=Permission::select('id','name')->get();

现在如果Type=Admin如何显示以下,只显示以下Entity和权限。 这是权限模型

    class Permission extends Model

    use HasFactory,Uuids;
 protected $fillable = ['id','name','type','entity'];
      public function roles()
    
        return $this->belongsToMany(Role::class, 'permission_role');
    
     

谢谢

【问题讨论】:

"Type=Admin" - 你不想像这样过滤吗:Permission::select('type')->where('type', 'Admin')->groupBy('type')->get() 其他类型怎么样,我的情况有7种以上 好吧,我敢打赌,我把那一段弄错了。你可能需要relationships 你之前没有提到角色。它们如何适应? 【参考方案1】:

你需要relationships。

你的模型:

class Type extends Model

    public function entities()
    
        return $this->hasMany(Entity::class);
    

class Entity extends Model

    public function permissions()
    
        return $this->hasMany(Permission::class);
    

你的刀片视图:

<table>
    @foreach($types as $type)
        <tr>
            <th colspan="6"> $type->type </th>
        </tr>
        @foreach($type->entities as $entity)
            <tr>
                <th> $entity->entity </th>
                @foreach($entity->permissions as $permission)
                    <td> $permission->name </td>
                @endforeach
            </tr>
        @endforeach
    @endforeach
</table>

【讨论】:

我尝试使用一个类权限(名称,实体,类型)是可能的,只有在权限类中 $types=Permission::select('type')->groupBy('type')->get(); $entities=Permission::select('entity')->groupBy('entity')->get(); $permission=Permission::select('id','name')->get(); 我敢打赌不是,但这取决于您的设置。为此,您必须分享您的 Permission 模型的代码。 类权限扩展模型 使用 HasFactory,Uuids; protected $fillable = ['id','name','type','entity'];公共函数角色()返回$this->belongsToMany(角色::类,'permission_role'); 能否将其放在您的问题中以提高可读性?

以上是关于如何在laravel中将第一个循环分配给第二个循环等等?的主要内容,如果未能解决你的问题,请参考以下文章

将第二个故事板控制器分配给第一个故事板标签栏项目。

DNS资源记录类型和请求流程

matlab怎样给第一个矩阵1号位置赋值,第二个矩阵2号位置赋值?

无法将 swift 文件分配给第二个视图

多重突变:如何让第一个突变将 ID 传递给第二个突变

Objective C如何在从第一个VC移动到第二个时停止无限循环