"未定义的常数/变量" Laravel出错......无法在刀片中显示变量

时间:2016-08-03 17:12:48

标签: php laravel laravel-5

我正在使用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();

此变量显示在我的main(index / default / home /无论你怎么称呼)html模板中,使用{{}}语法如下:

HTML模板

   <div class="counter">   
   <div class="informational">{{dashboardData.stats.recieved}}</div>
   </div>

它完全显示了我期望的结果.... 但我想在我正在使用的布局刀片中显示相同的数据...我在layout.blade(目录:/ app / views)中使用与{{dashboardData.stats.recieved}}相同的html结构但是我得到&#34; 未定义的常量&#34;和&#34; 未定义变量&#34;错误...

以下是我对routes.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');

我在laravel上很新,我偶然发现了&#34; view :: share&#34;和&#34;观看:制作&#34;事情,但没有完全得到它如何做到完美&amp;安全,没有一个错误...... 我还在&#34; /app/libraries/initiation.php"中设置了一个库。将一些数据反映到layout.blade ....如何在layout.blade中显示数据{{dashboardData.stats.recieved}}而不出现错误&#34; 未定义常量&# 34;和&#34; 未定义变量&#34; ...... ???这也是最正确,最实际,最重要的安全方式...... ???

1 个答案:

答案 0 :(得分:4)

您在 Blade 模板中以不正确的方式访问变量。

替换

{{dashboardData.stats.recieved}}

{{$dashboardData['stats']['recieved']}}

确保将变量传递给控制器​​的视图:

public function dashboardData() {
  // your logic that generates $toReturn array

  return view('your_view')->with('dashboardData', $toReturn);
}