Intereting Posts
Ларный кэш с PHP Captcha для алгоритма защиты от сбоев ImageMagick или GD Library для изменения размера изображения и создания миниатюр? CAKEPHP – изменить путь по умолчанию к webroot Пытаетесь подключиться к сайту ASPX с помощью CURL? изменить значение через 24 часа FatalErrorException: Ошибка: вызов функции-члена имеет () для не-объекта Попытка заставить MySQL подключаться через php в JSON, но возвращая ошибки, связанные с MySQL из php-скрипта Как решить «Ошибка вызова неопределенной функции dbase_open ()» в окнах Как создать решение, ограничивающее хранение пользователей в приложении? Где искать исключения в приложении PHP MVC? Задайте каталог PHP ImageMagick tmp Использование переменной HTTP HTTP_ACCEPT_LANGUAGE Можно ли отправлять смешанные письма txt / html с помощью функции php mail? Должна ли GD так много памяти при изменении размера? Сборник PHP – Копирование дубликатов при обновлении или изменении страницы

невозможно передать массив из контроллера для просмотра в laravel

Я новичок в laravel, и я слежу за документацией и несколькими видео, но часами теперь я пытаюсь передать массив из контроллера в представление, но я продолжаю получать эту ошибку в представлении:

Undefined variable: quiz 

Это код контроллера:

 public function SetQuestions($id) { $query = Quiz::find($id); $quiz = array( 'id' => $query->id, 'noQuestions' => $query->no_questions, 'totalQuizScore' => $query->total_quiz_score ); return View::make('quiz.set-questions')->with($quiz); } 

Это маршрут:

 Route::resource("/quiz/set-questions/{id}", 'QuizController@SetQuestions'); 

Это код в представлении:

  <?php var_dump($quiz); ?> 

На данный момент я просто демпинг данных, чтобы увидеть, изменилось ли значение формы null.

Как описано в документах, метод view принимает два аргумента. Первый – это имя переменной, к которой вы хотите, чтобы она была доступна в представлении, вторая – фактические данные.

 return View::make('quiz.set-questions')->with('quiz', $quiz); 

Есть еще несколько вариантов

 return View::make('quiz.set-questions')->withQuiz($quiz); return View::make('quiz.set-questions', array('quiz'=>$quiz)); return View::make('quiz.set-questions', compact($quiz)); 

Все они имеют одинаковый результат

Используйте compact а затем просто вызовите $quiz на ваш взгляд.

 public function SetQuestions($id) { $query = Quiz::find($id); $quiz = array( 'id' => $query->id, 'noQuestions' => $query->no_questions, 'totalQuizScore' => $query->total_quiz_score ); return View::make('quiz.set-questions', compact('quiz')); } 

Для Laravel 5 вам нужно сделать что-то подобное.

 Route::get('/', function(){ $people = ['John','Joe','Jack']; return view('welcome',compact('people'); }); 

Если вы передадите $people вы получите сообщение об ошибке.