Commit 8da1c16c authored by Taylor Otwell's avatar Taylor Otwell

Tweak controller layout resolution.

Signed-off-by: 's avatarTaylor Otwell <taylorotwell@gmail.com>
parent 2b814976
...@@ -46,6 +46,22 @@ abstract class Controller { ...@@ -46,6 +46,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.
* *
...@@ -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