我正在使用Laravel Blade开发一个简单的计算器应用程序。我们还没有迁移到模型,只是在视图和路线中工作,所以我一直遇到尚未学会如何使用的选项。
我的应用程序正在正常运行,但没有在POST的下拉列表中保留所选值。我可以将值打印到屏幕上,并且可以在以后的选择器中使用。 我想我只需要在选项中写一个if语句来设置选定的值,但是我找不到我理解/允许在该项目中使用的语法。
<div class="form-group">
<select class="form-control form-control-lg" id="operatorInput" name="operatorInput" value="{{Session::get('operator')}}">
<option value="+" @if(Session::get('operatorInput') == "+" ? "selected" : "" )@endif>Addition (+)</option>
<option value="-" @if(Session::get('operatorInput') == "-" ? "selected" : "" )@endif>Subtraction (-)</option>
</select>
</div>
在此示例中,我会抛出一个错误,所以我知道这是不正确的。
答案 0 :(得分:0)
引发错误是由于调用了没有\ root指示符的Session Facade,请改用会话帮助程序
例如routes/web.php
Route::get('/', function () {
session(['operatorInput' => '-']);
return view('welcome');
});
还有welcome.blade.php
<div class="form-group">
<select class="form-control form-control-lg" id="operatorInput" name="operatorInput"
value="{{ session('operator') }}">
<option value="+" {{ (session('operatorInput') == "+") ? "selected" : "" }}>Addition (+)</option>
<option value="-" {{ (session('operatorInput') == "-") ? "selected" : "" }}>Subtraction (-)</option>
</select>
</div>
您可以保留当前代码,但需要在\
门面别名之前添加反斜杠\Session
,但是我发现helper函数对于视图文件来说更优雅(且更短)< / p>
希望这会有所帮助