我正在使用laravel,我的仪表板控制器中有一个变量(它扩展了基本控制器)定义如下:
仪表板控制器:
public function dashboardData(){
$toReturn = array();
$toReturn['siteTitle'] = $this->data['panelInit']->settingsArray['siteTitle'];
//------other things-----------//
$toReturn['stats'] = array();
//------some other things-----------//
$toReturn['stats']['recieved'] = messagesList::where('userId',$this->data['users']->id)->where('messageStatus',1)->count();
这个变量显示在我的主(index/default/home/不管你叫它什么)html模板中,使用如下{{}}语法:
HTML模板
<div class="counter">
<div class="informational">{{dashboardData.stats.recieved}}</div>
</div>
它完全显示了我所期望的结果。。。。但我想在我正在使用的布局刀片中显示相同的数据。。。我在layout.blade(目录:/app/views)中使用了与{{dashboardData.stats.received}}相同的html结构,但我收到了"未定义常量"answers"未定义变量)错误。。。
以下是我的路线的一瞥。php:-
routes.php
Route::group(array('prefix'=>'/','before'=>'auth.Ui|auth.token|api.csrf'),function(){
Route::get('/','DashboardController@index');
Route::get('/dashboard','DashboardController@dashboardData');
Route::get('/dashboard/baseUser','DashboardController@baseUser');
//-------------some things-------------//
Route::post('/dashaboard','DashboardController@dashaboardData');
我对拉拉威尔还很陌生,我偶然发现了"观点:分享"answers"观点:制造"这两个词,但我不太明白如何完美地做到这一点;安全无误。。。我在"/app/librarys/initiation.php"中也有一个库设置,它将一些数据反映到layout.blade……如何在布局.blade中显示数据{{dashboardData.stats.received}},而不显示错误"未定义常量"answers"未定义变量。。。???以及什么是最正确、最实用、最重要的安全方式。。。???
您在Blade模板中以不正确的方式访问变量。
更换
{{dashboardData.stats.recieved}}
带有
{{$dashboardData['stats']['recieved']}}
确保将变量从控制器传递到视图:
public function dashboardData() {
// your logic that generates $toReturn array
return view('your_view')->with('dashboardData', $toReturn);
}