Ali insan Soyaslan
Ali insan Soyaslan

Reputation: 846

Extending from diffrent layouts in laravel view

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?

Upvotes: 0

Views: 883

Answers (1)

lukasgeiter
lukasgeiter

Reputation: 152860

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.

Upvotes: 2

Related Questions