无法将数组从控制器传递到laravel中的视图

时间:2014-11-21 23:02:29

标签: php laravel laravel-4

我是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。

3 个答案:

答案 0 :(得分:1)

使用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'));
}

答案 1 :(得分:0)

docs中所述,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));

所有这些都有相同的结果

答案 2 :(得分:0)

对于Laravel 5,你必须做这样的事情。

Route::get('/', function(){

  $people = ['John','Joe','Jack']; 

  return view('welcome',compact('people'); 

});

如果您通过$people,则会收到错误消息。