Php Laravel 4:对象阵列上的交互
我正在慢慢学习Laravel/PHP,正在为一个基本的CMS构建一个菜单系统。我已经将菜单作为json存储在数据库中。这样我就可以将其用于其他应用程序等 我现在尝试解码json并循环它以显示我的菜单。新数组是一个对象数组。我的问题是: •如何遍历此数组?当我尝试获取$item->id时,它工作正常。然而,当我尝试获取$item->title时,我得到了一个ErrorException 我相信这很简单。我快发疯了!谢谢你花时间看 控制器 用foreach查看 json_解码后的对象 )Php Laravel 4:对象阵列上的交互,php,arrays,json,laravel-4,Php,Arrays,Json,Laravel 4,我正在慢慢学习Laravel/PHP,正在为一个基本的CMS构建一个菜单系统。我已经将菜单作为json存储在数据库中。这样我就可以将其用于其他应用程序等 我现在尝试解码json并循环它以显示我的菜单。新数组是一个对象数组。我的问题是: •如何遍历此数组?当我尝试获取$item->id时,它工作正常。然而,当我尝试获取$item->title时,我得到了一个ErrorException 我相信这很简单。我快发疯了!谢谢你花时间看 控制器 用foreach查看 json_解码后的对象 ) 再次感谢-
再次感谢-我希望有人能发现我的错误。您的json数据只有第一项的标题。其他menuitems的标题未定义,因此当您尝试访问foreach循环中的未定义标题时,可能会收到未定义属性警告 您可以检查循环中是否有标题
@foreach( $menuitems as $item)
<h4>{{{ isset($item->title) ? $item->title : 'Default Title' }}}</h4>
@endforeach
@foreach($menuitems作为$item)
{{{isset($item->title)?$item->title:'Default title'}}
@endforeach
或者,您必须确保数据集中的每个菜单项(json)都有一个title属性。ahhh。传奇我开始认为这与数据无效有关。非常感谢,丹。你真的帮了大忙。
@foreach( $menuitems as $item)
<h4>{{ $item->title }}</h4>
@endforeach
[{"title":"Title","link":"/test.html","id":"1","children":[{"title":"Title","link":"/test.html","id":"2","children":[{"title":"Title","link":"/test.html","id":"3"}]}]},{"id":"4"},{"id":"5","children":[{"id":"6","children":[{"id":"7"}]}]},{"id":"8"},{"id":"9"}]
Array ( [0] => stdClass Object (
[title] => Title
[link] => /test.html
[id] => 1
[children] => Array ( [0] => stdClass Object (
[title] => Title
[link] => /test.html
[id] => 2 [children] => Array (
[0] => stdClass Object (
[title] => Title
[link] => /test.html
[id] => 3
)
)
)
)
)
[1] => stdClass Object (
[id] => 4
)
[2] => stdClass Object (
[id] => 5
[children] => Array ( [0] => stdClass Object (
[id] => 6
[children] => Array (
[0] => stdClass Object (
[id] => 7
)
)
)
)
)
[3] => stdClass Object (
[id] => 8
)
[4] => stdClass Object (
[id] => 9
)
@foreach( $menuitems as $item)
<h4>{{{ isset($item->title) ? $item->title : 'Default Title' }}}</h4>
@endforeach