Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/10.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/neo4j/3.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,假设我打电话给我的用户并返回以下信息: $user = User::with('permissions')->find(1); 我希望得到一个$user->permissions作为用户权限的用户 接下来,我通过以下方式为该用户创建并分配一些新权限: // Say Input::all() contains an array of new permissions I want to add // I am using Underscore PHP here $newPermissions

假设我打电话给我的用户并返回以下信息:

$user = User::with('permissions')->find(1);
我希望得到一个$user->permissions作为用户权限的用户

接下来,我通过以下方式为该用户创建并分配一些新权限:

// Say Input::all() contains an array of new permissions I want to add
// I am using Underscore PHP here
$newPermissions = Arrays::each(Input::all(), function($permission) {
                      $new = new Permission($permission);
                      $user->associate($new);
                      return $new;
                  });
现在我想更新$user并将其返回:

// This does NOT work (it returns the original $user->permissions)
return $user->permissions = $newPermissions;

// But this DOES work
unset($user->permissions);
return $user->permissions = $newPermissions;
这是PHP的东西还是Laravel的东西?我能做什么?顺便说一句,即使我说$user->permissions='任何东西、文本、字符串或对象都不起作用!'什么也没有发生。

看起来权限是一种关系,而不是一个可以赋值的简单值。我建议您阅读关于和的文档


特别是最后一个,就是你要做的。您不需要为$user->permissions分配值,而是需要根据关系的类型,使用save、associate或attach方法更新关系。

这很有说服力-它不允许您以这种方式设置关系。使用此$user->setRelation'permissions',$newPermissions