@@ -21,6 +21,7 @@ trait ControllerAdditions
21
21
public function render ($ view , $ data = [], $ options = null )
22
22
{
23
23
list ($ view , $ options ) = $ this ->makeView ($ view , $ data , $ options );
24
+ $ view = $ this ->makeLayout ($ view , $ options );
24
25
25
26
return $ this ->makeResponse ($ view , $ options );
26
27
}
@@ -29,7 +30,7 @@ public function render($view, $data = [], $options = null)
29
30
* @param \Illuminate\View\View|string|array $view [description]
30
31
* @param array $data
31
32
* @param mixed $options
32
- * @return array [\Illuminate\View\View $view, array $options]
33
+ * @return array [\Illuminate\View\View|string $view, array $options]
33
34
*/
34
35
protected function makeView ($ view , $ data = [], $ options = null )
35
36
{
@@ -77,19 +78,33 @@ protected function makeView($view, $data = [], $options = null)
77
78
// Transform the $view string path to a View object
78
79
$ view = view ($ view , $ data );
79
80
}
81
+ $ options ['layout ' ] = $ layout ;
82
+ $ options ['format ' ] = $ format ;
80
83
84
+ return [$ view , $ options ];
85
+ }
86
+
87
+ /**
88
+ * @param \Illuminate\View\View|string $view
89
+ * @param array $options
90
+ * @return \Illuminate\View\View|string
91
+ */
92
+ protected function makeLayout ($ view , $ options = [])
93
+ {
94
+ $ layout = array_pull ($ options , 'layout ' );
81
95
$ this ->setupLayout ($ layout );
82
- if ($ this ->layout && $ this ->layout ->getName () !== $ view ->getName ()) {
96
+ if ($ this ->layout &&
97
+ (is_string ($ view ) || $ this ->layout ->getName () !== $ view ->getName ())
98
+ ) {
83
99
$ this ->layout ->with ('content ' , $ view );
84
100
$ view = $ this ->layout ;
85
101
}
86
- $ options ['format ' ] = $ format ;
87
102
88
- return [ $ view, $ options ] ;
103
+ return $ view ;
89
104
}
90
105
91
106
/**
92
- * @param \Illuminate\View\View $view
107
+ * @param \Illuminate\View\View|string $view
93
108
* @param array $options
94
109
* @return \Illuminate\Http\Response
95
110
*/
0 commit comments