【发布时间】:2015-07-21 14:55:10
【问题描述】:
您好,我正在创建一个数组,用于在我的站点中存储部分。其中一些部分将无法供某些用户查看,因此我需要在放入我的阵列之前检查相关用户的权限。但是,当我执行此 if 语句时,我会在一个我不想要的数组中得到一个数组,这会导致以下错误:
Method Illuminate\View\View::__toString() must not throw an exception
这是我正在使用的代码:
$user = Auth::user();
if(($user->hasRole('Admin') || $user->hasRole('Admin') || $user->hasRole('Project Master') || $user->hasRole('Project Owner'))) {
$restrictsections = ['Create' => route('project.create'),
'Sort' => route('project.sort'),];
}
$this->sections = [
'Projects' => [
'View' => route('project.index'),
$restrictsections
]
];
数组现在的结构如下:
array(1) {
["Projects"]=>
array(2) {
["Create"]=>
string(30) "http://projects.local/projects"
[0]=>
array(2) {
["Create"]=>
string(37) "http://projects.local/projects/create"
["Edit"]=>
string(35) "http://projects.local/projects/sort"
}
}
}
相对于:
$this->sections = [
'Project' => [
'View' => route('project.index'),
'Create' => route('project.create'),
'Sort' => route('project.sort'),
]
];
array(1) {
["Project"]=>
array(3) {
["View"]=>
string(30) "http://projects.local/project"
["Create"]=>
string(37) "http://projects.local/project/create"
["Sort"]=>
string(35) "http://projects.local/project/sort"
}
}
任何想法如何将两个数组合并在一起?但它的结构应该如下:
array(1) {
["Project"]=>
array(3) {
["View"]=>
string(30) "http://projects.local/project"
["Create"]=>
string(37) "http://projects.local/project/create"
["Sort"]=>
string(35) "http://projects.local/project/sort"
}
}
【问题讨论】:
-
你可以试试array_merge_recursive
-
请回显“
”.print_r($array);太难读了……
-
@rohitarora nope 没用。还是同一个数组。