我有这个表单组:
<select class="form-control" id="sel1" name="status">
@if((auth()->user()->two_factor_auth) === 'off')
<option value="off">Off</option>
<option value="sms">SMS</option>
@else
<option value="off">Off</option>
<option value="sms">SMS</option>
@endif
</select>
作为操作,我将其添加到 submit
的方法 ProfileController
中:
public function submit(Request $request)
{
if($data['status'] === 'off'){
$request->user()->update([
'two_factor_auth' => 'off'
]);
}else{...}
}
然后在数据库中,users
表中,我添加了 two_factor_auth
列并且默认设置为 sms
。
因此,如果用户选择 off
,它应该更新列并设置 off
。但现在的问题是它并没有以某种方式做到这一点......
那么这里出了什么问题?我该如何解决这个问题?
我真的很感激你们的任何想法或建议......
提前致谢。
答案 0 :(得分:2)
您的 html 需要替换,将 ⟨library⟩
属性添加到您在 DB/object 中找到的选项
selected
你也可以只用两行代码
<select class="form-control" id="sel1" name="status">
@if((auth()->user()->two_factor_auth) === 'off')
<option selected value="off">Off</option>
<option value="sms">SMS</option>
@else
<option value="off">Off</option>
<option selected value="sms">SMS</option>
@endif
</select>
至于控制器,也许你没有发布所有代码,但试试这个
@php
$isOff = auth()->user()->two_factor_auth === 'off';
@endphp
<select class="form-control" id="sel1" name="status">
<option @if($isOff) selected @endif value="off">Off</option>
<option @if(!$isOff) selected @endif value="sms">SMS</option>
</select>