Я использую 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();
Эта переменная отображается в моем основном (индекс / по умолчанию / home / what you call it) html-шаблоне с использованием синтаксиса {{}} следующим образом:
Шаблон HTML
<div class="counter"> <div class="informational">{{dashboardData.stats.recieved}}</div> </div>
и он полностью показывает результат, который я ожидаю …. но я хочу показать эти же данные в макете, который я использую … Я использую ту же структуру html в layout.blade (каталог: / app / views ) с {{dashboardData.stats.recieved}}, но я получаю ошибки « Undefined Constant » и « undefined Variable » …
Ниже приводится обзор моих маршрутов.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, я наткнулся на «view :: share» и «view: make», но не совсем понял, как сделать это отлично и безопасно без единой ошибки … У меня также есть библиотеки в "/app/libraries/initiation.php", который отражает некоторые данные в layout.blade …. Как показать данные {{dashboardData.stats.recieved}} в layout.blade без ошибок " Undefined Constant "и" undefined Variable "… ??? а также то, что было бы самым правильным, практичным и, самое главное, безопасным способом сделать это … ???
Вы неправильно используете переменные в шаблоне Blade .
замещать
{{dashboardData.stats.recieved}}
с
{{$dashboardData['stats']['recieved']}}
Убедитесь, что вы передаете переменную в представление с вашего контроллера:
public function dashboardData() { // your logic that generates $toReturn array return view('your_view')->with('dashboardData', $toReturn); }