我正在开发一个项目,以便更好地处理Laravel 5.2。该项目是一个简单的应用程序,它从SQL数据库中引用并将其显示给用户。用户有一个输入字段,用于输入答案。如果用户的输入与作者姓名匹配,则他会收到通知,并且他的分数增加1,并显示下一个问题。如果答案不正确,他会显示正确的答案,并显示下一个问题。
错误是指我的刀片模板页面中的这行代码:
@if(Session::has('index'))
{{ $i = Session::get('index')}}
<h3 class="text-center">" {{$quotes[$i]->quote}} " </h3>
{{$currentId = $quotes[$i]->author_id}}
@endif
如果我要自己渲染$i
,就像这样:{{$i}}
,我得到正确的数值。
以下是控制器中负责设置会话变量的代码:
if (!$request->session()->has('index')) {
$index = 1;
$request->session()->set('index', $index);
} else {
$index = $index + 1;
$request->session()->set('index', $index);
}
Edit1 :$ quotes数组工作正常,如果我选择了一个数字,就像在 $ quotes [0] - &gt;引用,我得到正确的字符串。
Edit2 :提供有关问题的背景信息。见上文。
答案 0 :(得分:1)
我会尝试这样的事情。这在视图本身中没有逻辑,而是在我相信它属于的控制器中。
<强>控制器:强>
public function show()
{
if (!$request->session()->has('index')) {
$index = 1;
$request->session()->set('index', $index);
} else {
$index = $index + 1;
$request->session()->set('index', $index);
}
$quote = Quote::getById($index); //make this method
return view('quote', compact('quote'));
}
然后在你看来:
<h3 class="text-center">" {{$quote->quote}} " </h3>
{{$currentId = $quote->author_id}}
您的报价模型会执行以下操作:
public function getById($id)
{
return Quote::find($id);
}
我认为最好将任何业务逻辑排除在您的视图之外,并将其放在您的控制器或模型本身中。您还可以创建一组quote
类来处理如何处理引号。