无法将阵列从控制器传递到拉拉维尔中的视图


unable to pass array from controller to view in 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 形式更改。

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

如文档中所述,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));

所有这些都有相同的结果

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

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

如果你通过$people你会得到一个错误。