2015-06-06 1 views
2

Allright,Undefined Variable ошибки при передаче данных от контроллера к клинку в Laravel 5

Вот мой index() метод UserController

public function index() 
{ 

    $name = 'echoashu'; 

    return view('home', compact('name')); 
} 

Как просто, а вот мой home.blade.php код

<span class="info-box-number">{{$name}} </span> 

Это должно идеально работать в соответствии с документацией, но оно возвращает неопределенную переменную ошибку

Undefined variable: name (View: C:\xampp\htdocs\laravel1\resources\views\home.blade.php) 

Любое предположение ??

+1

убедитесь, что вы вызываете функцию индекса UserController от вашего маршрута –

+0

Ok, кажется, работает Но, я не хотите изменить маршрут, который сказал, что я в порядке с '/ home' маршрутом до' HomeController @ index' и хотел бы использовать Data из 'UserController' [различные методы], не могу ли я это сделать ?? – echoashu

+1

вы можете это сделать, но это противоречит концепции Laravel/MVC, если вы хотите обмениваться данными в разных представлениях, вы можете поделиться им с помощью функции загрузки AppServiceProvider или вы можете запросить данные в базовом контроллере, т. Е. Контроллер в Laravel 5 –

ответ

5

Дайте человеку рыбу, и вы кормите его на день; Научите человека ловить рыбу, и вы кормите его на всю жизнь

Вот позвольте мне сказать, как отлаживать (рыбу) в этой ситуации.

первый шаг:

Убедитесь, что ваш звонок правильно

Вы можете сделать это

Route::get('yourcall', '[email protected]'); 

Перед передачей его внутри вида, просто напечатать что-то внутри контроллера, как

public function index() 
{ 
echo 'Whao ! I landed correctly'; 
} 

2ст Шаг:

Убедитесь, что вы видите, что вы называете

Теперь сделайте ваше возвращение к мнению, убедитесь, что ваша точка зрения существует и иметь имя с расширением, как yourview.blade.php

Вы можете сделать это

return view('yourview', compact($YourValue)); 

Итак, вы должны иметь вид назван yourview.blade.php

Внутри лезвия вы можете получить переданное значение как

{{$YourValue}} // If you have your file name as yourview.blade.php 

или

<?php 
echo $YourValue // If you have your file name as yourview.php 
?> 
+0

поняла, и это сработало. Однако я создаю приложение на основе db, поэтому хотел бы запрашивать данные из разных таблиц (Модели) без изменения маршрута. И поскольку контроллеры предназначены для запроса и поиска данных, как я могу использовать данные из нескольких таблиц в представлении, скажем, это страница панели мониторинга, и ей нужны данные из нескольких таблиц. – echoashu

+0

Вы имеете в виду, что вы хотите иметь глобальный контроллер? что-то вроде Все в одной функции? –

+1

вы можете вызвать любой класс модели с любого контроллера, и так оно и есть. Я предлагаю вам быть более активными на канале IRAR laravel –

Смежные вопросы