douhan0562 2014-12-30 11:03
浏览 43
已采纳

从laravel视图中的不同布局扩展

I have a laravel page which can be extended from admin layout or user layout. If the user logged as admin it should extend from admin, otherwise it should extend from user. Can I make this control with a simple if inside of my view like:

//in my view
@if(Auth::check())
 @extends('layouts.admin')
@else
 @extends('layouts.outside')

If I do this control in my controller I need to make two view for user and admin and I dont want to duplicate my views like:

//in my controller
if(Auth::check())
  return View::make('bot/bwin_admin');
else
  return View::make('bot/bwin_user');//the view is duplicated :(

So how can I use different parent layout for a view without duplicating that view in laravel?

  • 写回答

1条回答 默认 最新

  • dotaer1993 2014-12-30 11:22
    关注

    You can control the layout in your controller.

    First add the default layout to your controller:

    public $layout = 'layouts.outside';
    

    Then do this in your action:

    if(Auth::check()){
        $this->layout = View::make('layouts.admin');
    }
    $this->layout->content = View::make('bot/bwin');
    

    Also, you can then remove the @extends() from your view. It is not needed anymore since the controller defines the layout.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?