laravel 4中非对象的性质
我使用的是Laravel4,当我试图创建一个带有下拉菜单的菜单时,出现了这个错误 正在尝试获取非对象的属性(视图:/Applications/MAMP/htdocs/test/app/views/layouts/master.blade.php)(视图:/Applications/MAMP/htdocs/test/app/views/layouts/master.blade.php) 我看不出我错在哪里 My master.blade.phplaravel 4中非对象的性质,laravel,drop-down-menu,laravel-4,blade,Laravel,Drop Down Menu,Laravel 4,Blade,我使用的是Laravel4,当我试图创建一个带有下拉菜单的菜单时,出现了这个错误 正在尝试获取非对象的属性(视图:/Applications/MAMP/htdocs/test/app/views/layouts/master.blade.php)(视图:/Applications/MAMP/htdocs/test/app/views/layouts/master.blade.php) 我看不出我错在哪里 My master.blade.php <li class="dropdown"&g
<li class="dropdown">
<a href="#" class="dropdown-toggle" data-toggle="dropdown">work<span class="caret"></span></a>
<ul class="dropdown-menu" role="menu">
@foreach($dropdowns as $dropdown)
<li>
{{ $dropdown->title }}
</li>
@endforeach
</ul>
</li>
我的页面模型
public function getPagesSelectList($name, $default = "", $js = "", $flag = true)
{
$list = array(
'name' => $name,
'default' => $default,
'js' => $js,
'pages' => $this->getSubPages($flag, $default)
);
return (object)$list;
}
public function getSubPages($flag, $default, $parent = 0, $num = 1)
{
$pages = array();
$pageSql = \Page::where('parent', '=', $parent)->orderBy('num', 'ASC')->get();
foreach ($pageSql as $result)
{
$page = new Page($result->id);
$page->setFromDatabase();
$page->default = $default;
$page->select = '';
if( $page->id == $default )
$page->select = $default;
$page->space = $num;
if(!empty($page))
$pages[] = $page;
$children = $page->getSubPages($flag, $default, $page->id, $num + 1);
if(!empty($children))
$pages[] = $children;
}
return array_flatten($pages);
}
假设其他代码工作正常,在Blade中,而不是:
@foreach($dropdowns as $dropdown)
<li>
{{ $dropdown->title }}
</li>
@endforeach
@foreach($dropdowns作为$dropdown)
{{$dropdown->title}
@endforeach
你应使用:
@foreach($dropdowns->pages as $dropdown)
<li>
{{ $dropdown->title }}
</li>
@endforeach
@foreach($dropdowns->页面为$dropdown)
{{$dropdown->title}
@endforeach
这是因为在getPagesSelectList
中,您将getSubPages
的结果分配给数组的pages
索引,然后将数组转换为对象
@foreach($dropdowns->pages as $dropdown)
<li>
{{ $dropdown->title }}
</li>
@endforeach