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

时间:2014-12-30 11:03:12

标签: php laravel blade

我有一个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中复制该视图?

1 个答案:

答案 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()。由于控制器定义了布局,因此不再需要它。