如何在laravel中不使用foreach循环显示动态值

时间:2016-04-05 10:42:29

标签: laravel menu rbac

如何在laravel中打印这些类型的数据。我正在尝试创建动态菜单并发生这些类型的问题。代码是这样的。我的代码是这样的。 在视图作曲家。

 public function compose(View $view)
{
    $menus = $this->menu->getDynamicMenus();

    $user_role = $this->role->lists('name', 'id');
    //dd($user_role);
    $view->with('user_role', $user_role)->with('menus', $menus);
}

menurepository code.

 public function getDynamicMenus()
{
    $user = $this->auth->user();

    $roles = $user->roles;

//        dd($roles);
        $menus = [];
        foreach ($roles as $role) {
//dd($role);
            foreach ($role->menus as $menu) {

                if ($menu["parent_id"] > 0) {
                    $menus[$menu["parent_id"]][$menu["id"]] = $menu->toArray();
                } else {
                    $menus[$menu["id"]] = $menu->toArray();
                }
            }
        }
       // dd($menus);
        return $menus;
    }


and i print in frontend like.

      @foreach($menus as $menu)

                   {{-- {!! Form::open() !!}
                    {!! Form::select('menus',$menus) !!}
                                        {!! Form::close() !!}--}}
                    {{--{!! $menuitem->menu_name !!}--}}
                    {!! $menu->menu_url !!}


                    @endforeach

它显示问题:

    Trying to get property of non-object (View: E:\xampp\htdocs\basicwc\resources\views\layouts\partials\sidebar.blade.php) (View: E:\xampp\htdocs\basicwc\resources\views\layouts\partials\sidebar.blade.php) (View: E:\xampp\htdocs\basicwc\resources\views\layouts\partials\sidebar.blade.php)

as  menu are getting in array like in image.
any help??

我试着这样做:

    {!! menu($menus) !!}

but it says undefined problem.

enter image description here

我添加了另一个菜单,其结构如下:

I added another menu and it's structure is like this:

1 个答案:

答案 0 :(得分:1)

像数组一样访问它:

@foreach($menus as $menu)

...
{{ $menu['menu_name'] }}
{{ $menu['menu_url'] }}

@endforeach