Par*_*ars 1 php laravel laravel-3
我正在尝试制作一个有2个或更多布局的网站,任何用户都可以更改他/她的布局.
我知道我们可以在控制器中使用布局,例如
public $ layout ='layouts.default'; ...和方法$ this-> layout-> nest('content',$ view,$ data);
但这对我来说没用,它总是默认的,我的意思是如何动态地改变$ layout的值?
例如,用户视图网站作为默认布局,但用户b将其视为黑色布局.
------------已编辑
我将布局存储在用户表中,但问题是如何在控制器中添加条件语句?存储布局名称的$ laravel变量是一个属性,只能在代码中设置一次,不能在任何方法之外添加语句来更改它.
您可以在用户登录时设置会话变量,以包含要从users表中检索的布局名称.然后,您可以使用它为用户设置布局或在默认布局上回退.
例如:
用户登录时:
Session::put('userlayout', $user->layout);
Run Code Online (Sandbox Code Playgroud)
在控制器中:
Laravel 4
protected $layout = Session::get('userlayout', 'layouts.default');
Run Code Online (Sandbox Code Playgroud)Laravel 3
public $layout = Session::get('userlayout', 'layouts.default');
Run Code Online (Sandbox Code Playgroud)或者如果您使用刀片:
Laravel 4
@extends(Session::get('userlayout', 'layouts.default'))
Run Code Online (Sandbox Code Playgroud)Laravel 3
@layout(Session::get('userlayout', 'layouts.default'))
Run Code Online (Sandbox Code Playgroud)| 归档时间: |
|
| 查看次数: |
1533 次 |
| 最近记录: |