在我的页面控制器中,我有
$this->layout->content = View::make('authentication/login')->with('page_title','title');
我正在为我的模板使用刀片文件。在html的头部,我有
<title>{{$page_title}}</title>
我收到$page_title
未定义的错误。
我理想的是$data=array('page_title'=>'Login','second_item'=>'value')...
。但由于我无法将变量基本传递给视图工作,所以我首先要坚持这一点。
答案 0 :(得分:3)
有许多方法可以实现这一点,正如@Gravy指出的那样,但从她尝试编写代码的方式来判断,解决方案将是:
$data = array();
$this->layout->with('data', $data);
$this->layout->content = View::make('home');
在此处查看更多内容:http://forums.laravel.io/viewtopic.php?pid=58548#p58548
答案 1 :(得分:2)
$data =
[
'page_title' => 'Login',
'second_item' => 'value'
...
];
return View::make('authentication/login', $data);
// or
return View::make('authentication/login', compact('data'));
// or
return View::make('authentication/login')->with($data);
// or
return View::make('authentication/login')->with(['page_title' => 'Login', 'second_item' => 'value']);
// or
return View::make('authentication/login')->with(array('page_title' => 'Login', 'second_item' => 'value'));
答案 2 :(得分:1)
$data = array('page_title'=>'Login','second_item'=>'value');
return View::make('authentication/login', $data);
答案 3 :(得分:0)
因此,要使布局在控制器中工作,您需要首先在布局刀片模板中声明变量content
。
在您的控制器中执行您已经完成的操作,但在视图中使用目录结构时请记住点符号。 layouts.master与layouts / master.blade.php相同。
class UserController extends BaseController {
/**
* The layout that should be used for responses.
*/
protected $layout = 'layouts.master';
public function getIndex()
{
// Remember dot notation when building views
$this->layout->content = View::make('authentication.login')
->with('page_title','title');
}
}
layouts / master.blade.php 中的
<div class="content">
{{-- This is the content variable used for the layout --}}
{{ $content }}
</div>
authentication / login.blade.php 中的
<title>{{ $page_title }}</title>
如果您使用此结构,这将有效。