Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/244.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Laravel从模型中获取所有相关数据_Php_Laravel - Fatal编程技术网

Php Laravel从模型中获取所有相关数据

Php Laravel从模型中获取所有相关数据,php,laravel,Php,Laravel,我有两个多对多关系,并试图获取所有相关数据。 用户模型: public function roles() { return $this->belongsToMany('App\Role', 'user_role_pivot', 'user_id', 'role_id'); } 榜样: public function rolepermissions() { return $this->belongsToMany('App\RolePermission', 'role_perm

我有两个多对多关系,并试图获取所有相关数据。 用户模型:

public function roles()
{
  return $this->belongsToMany('App\Role', 'user_role_pivot', 'user_id', 'role_id');
}
榜样:

public function rolepermissions()
{
  return $this->belongsToMany('App\RolePermission', 'role_permissions_connect', 'role_id', 'role_perm_id');
}
我正在制定策略,希望从我的
角色权限
中获取所有值

我的政策:

public function createrole(User $user)
{
    foreach ($user->roles as $role) {
        foreach ($role->rolepermissions as $permission) {
            return $permission->permission_name;
        }
    }
}

它只返回一个结果,但我想从角色权限中获取所有相关数据。

一旦函数点击
return
,它就会停止执行并返回结果。它不同于C语言中的
收益率返回
,在C语言中,您可以实际返回多个值

无论如何,您可能希望将所有内容添加到数组中,然后使用数组执行操作,如下所示:

public function createrole(User $user) {
    $array = [];
    foreach ($user->roles as $role) {
        foreach ($role->rolepermissions as $permission) {
            array_push($array, $permission);
        }
    }

    dd($array); //add this line if you want to see your array's items

    foreach($item in $array){
        //do something
    }
}
既然我们正在以各种方式进行最佳实践,您也可以这样做:

foreach ($user->roles as $role) {
    foreach ($role->rolepermissions as $key => $permission) {
        $array[$key] = $permission;
    }
}

这在性能方面可能更有效。

一旦函数点击返回,它就会停止执行并返回结果。它不同于C语言中的
收益率返回
,在C语言中,您可以实际返回多个值

无论如何,您可能希望将所有内容添加到数组中,然后使用数组执行操作,如下所示:

public function createrole(User $user) {
    $array = [];
    foreach ($user->roles as $role) {
        foreach ($role->rolepermissions as $permission) {
            array_push($array, $permission);
        }
    }

    dd($array); //add this line if you want to see your array's items

    foreach($item in $array){
        //do something
    }
}
既然我们正在以各种方式进行最佳实践,您也可以这样做:

foreach ($user->roles as $role) {
    foreach ($role->rolepermissions as $key => $permission) {
        $array[$key] = $permission;
    }
}

这在性能方面可能更有效。

您正在返回
$permission->permission\u name
因此,
返回
强制函数停止执行。最好返回一个数组

 $roles = [];
 foreach ($user->roles as $role) {
      foreach ($role->rolepermissions as $permission) {
        $roles[] = $permission->permission_name;
      }
    }
}
return $roles;

您正在返回
$permission->permission\u name
因此,
返回
强制函数停止执行。最好返回一个数组

 $roles = [];
 foreach ($user->roles as $role) {
      foreach ($role->rolepermissions as $permission) {
        $roles[] = $permission->permission_name;
      }
    }
}
return $roles;

在我打字的时候也打我:-)@rchatburn哈哈,你在这里要快一点;-)在我打字的时候也打我:-)@rchatburn哈哈,你在这里要快一点;-)