【问题标题】:Laravel : Undefined variable in blade?Laravel:刀片中的未定义变量?
【发布时间】:2018-11-26 21:51:21
【问题描述】:

在执行时,刀片视图中的未定义变量:分数(视图:C:\Users\Sarthak\blog\resources\views\submitquestion.blade.php):

控制器部分

public function question(Request $request)
{
    static $startscore = 0;
    $getidvalue = Input::get('getid');
    $getanswervalue = Input::get('getanswer');
    $dbscore = DB::table('5question')->select('question_id', 'correct_answer', 'question_marks')->where('question_id', '=', $getidvalue)->get();
    foreach($dbscore as $value) {
        if ($getanswervalue == ($value->correct_answer)) {
            $getscore = $startscore + $value->question_marks;
        }
        elseif ($getanswervalue == null) {
            $emptyvalue = - 1;
            $getscore = $startscore + $emptyvalue;
        }
        else {
            $novalue = 0;
            $getscore = $startscore + $novalue;
        }
    }

    echo "$getscore";
    Session::push('getscoresession', $getscore);
    $getsession = ['qid' => $getidvalue, 'answer' => $getanswervalue];
    Session::push('answer', $getsession);

    // return response()->json(['qid'=>$getidvalue,'answer'=>$getanswervalue]);

    $score = array_sum(Session::get("getscoresession"));

    // return view('submitquestion',compact('score'));

    return view('submitquestion', ['score' => $score]);
}

刀片部分:

您已提交测验,您的分数是:{{ $score }}> 登出

【问题讨论】:

  • 在刀片文件中,使用@{{$score}},而不是{{ $score }}
  • 它有效,但我的值没有从控制器传递到视图......它显示
  • 你已经提交了测验,你的分数是:{{ $score }} > LOGOUT
  • 您在将数据传递给视图时使用了 $score 作为变量名。这会导致刀片创建一个名为 $$score 的变量
  • 我必须在变量中传递我的会话数组值,然后将它传递给刀片部分我该如何继续?

标签: php laravel


【解决方案1】:

试试这个:

return view('submitquestion', compact('score'));

【讨论】:

  • 对不起,但我是新的 larave ......但我仍然尝试这个也显示未定义我的问题是我如何在刀片部分显示我的分数变量?
    你已经提交了测验,你的分数是:{{ $score }}
  • 虽然此代码 sn-p 可能是解决方案,但 including an explanation 确实有助于提高您的帖子质量。请记住,您是在为将来的读者回答问题,而这些人可能不知道您提出代码建议的原因。
【解决方案2】:

您可以使用 withcompact 传递变量表单控制器来查看:

$request->session()->put('getscoresession', $getscore);
$getsession = ['qid' => $getidvalue, 'answer' => $getanswervalue];
$request->session()->put('answer', $getsession);

if ($request->session()->has('getscoresession')) {
     $score = array_sum($request->session()->get("getscoresession"));
}else{
      $score = 0;
 }

使用:

$score= 10;  
return view('submitquestion')->with('score',$score);

使用紧凑:

return view('submitquestion',compact('score'));

【讨论】:

  • 如何在刀片部分获得该变量?
  • {{ $score }}

  • 对不起,但我仍然显示 Undefined variable: score (View: C:\Users\Prasoon\blog\resources\views\submitquestion.blade.php)..... 作为我在控制台中显示的分数部分但不在刀片中
  • 尝试传递像 $score =10 这样的静态值;并打印出来
  • 然后检查,您是否从 Db 获得价值或不使用 dd($score);
【解决方案3】:

试试看。如果您从控制器收到错误,请发送 $score = 10; return view('submitquestion')->with(['score' => $score]);

【讨论】:

    猜你喜欢
    • 2017-06-17
    • 1970-01-01
    • 1970-01-01
    • 2014-03-15
    • 2017-08-24
    • 2022-11-02
    • 1970-01-01
    • 2019-01-19
    • 2019-02-19
    相关资源
    最近更新 更多