Commit 8da1c16c by Taylor Otwell

Tweak controller layout resolution.

Signed-off-by: Taylor Otwell <taylorotwell@gmail.com>
parent 2b814976
...@@ -47,6 +47,22 @@ abstract class Controller { ...@@ -47,6 +47,22 @@ abstract class Controller {
const factory = 'laravel.controller.factory'; const factory = 'laravel.controller.factory';
/** /**
* Create a new Controller instance.
*
* @return void
*/
public function __construct()
{
// If the controller has specified a layout to be used when rendering
// views, we will instantiate the layout instance and set it to the
// layout property, replacing the string layout name.
if ( ! is_null($this->layout))
{
$this->layout = $this->layout();
}
}
/**
* Call an action method on a controller. * Call an action method on a controller.
* *
* <code> * <code>
...@@ -141,22 +157,12 @@ abstract class Controller { ...@@ -141,22 +157,12 @@ abstract class Controller {
// by convention out of the bundle's controller directory. // by convention out of the bundle's controller directory.
if (Event::listeners(static::factory)) if (Event::listeners(static::factory))
{ {
$controller = Event::first(static::factory, $controller); return Event::first(static::factory, $controller);
} }
else else
{ {
$controller = new $controller; return new $controller;
} }
// If the controller has specified a layout to be used when rendering
// views, we will instantiate the layout instance and set it to the
// layout property, replacing the string layout name.
if ( ! is_null($controller->layout))
{
$controller->layout = $controller->layout();
}
return $controller;
} }
/** /**
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment