我有一个laravel页面,可以从管理员布局或用户布局扩展。 如果用户以admin身份登录,则应从admin扩展,否则应从用户扩展。 如果在我的视图中,我可以使用简单的方法进行此控制:
//in my view
@if(Auth::check())
@extends('layouts.admin')
@else
@extends('layouts.outside')
如果我在我的控制器中执行此控制,我需要为用户和管理员制作两个视图,我不想复制我的观点,如:
//in my controller
if(Auth::check())
return View::make('bot/bwin_admin');
else
return View::make('bot/bwin_user');//the view is duplicated :(
那么如何在视图中使用不同的父布局而不在laravel中复制该视图?
答案 0 :(得分:2)
你可以control the layout in your controller。
首先将默认布局添加到控制器:
public $layout = 'layouts.outside';
然后在你的行动中这样做:
if(Auth::check()){
$this->layout = View::make('layouts.admin');
}
$this->layout->content = View::make('bot/bwin');
此外,您可以从视图中删除@extends()
。由于控制器定义了布局,因此不再需要它。