如何在 Laravel 控制器中使用 if 语句来请求表单值
How do I use if statement in a Laravel Controller to request a form value
我搜索了类似的问题,但 none 似乎符合我打算做的事情。我有一个带有隐藏部分的表单,只有在选择一个选项时才会显示。我不希望我的控制器担心这个隐藏部分的值,如果它是隐藏的(意味着没有用户输入,因为用户没有看到它)。但是如果有输入,那么控制器应该处理请求值。下面是代码
<form class="form-horizontal" role="form" method="POST" action="/employees">
{{ csrf_field() }}
<div class="panel-title">Employee Details</div><br>
<div class="form-group">
<label for="firstname" class="col-md-4 control-label">Firstname</label>
<div class="col-md-6">
<input id="firstname" type="text" class="form-control" name="firstname" value="{{ old('firstname') }}" required autofocus>
</div>
</div>
<div class="form-group>
<label for="lastname" class="col-md-4 control-label">Lastname</label>
<div class="col-md-6">
<input id="lastname" type="text" class="form-control" name="lastname" value="{{ old('lastname') }}" required autofocus>
</div>
</div>
<div class="form-group}">
<label for="department" class="col-md-4 control-label">Department</label>
<div class="col-md-6">
<select name="department" id="dept" class="form-control" required autofocus>
<option class="text-muted">-- Select Department --</option>
<option value="administration">Adminstration</option>
<option value="worker">Worker</option>
</select>
</div>
</div>
<div class="col-md-12" id="teacred">
<div class="panel-title">Create Teacher Authentication</div><br>
<div class="form-group">
<label for="username" class="col-md-4 control-label">Username</label>
<div class="col-md-6">
<input id="username" type="username" class="form-control" name="username" value="{{ old('username') }}">
</div>
</div>
<div class="form-group">
<label for="password" class="col-md-4 control-label">Password</label>
<div class="col-md-6">
<input id="password" type="password" class="form-control" name="password">
</div>
</div>
<div class="form-group">
<label for="password-confirm" class="col-md-4 control-label">Confirm Password</label>
<div class="col-md-6">
<input id="password-confirm" type="password" class="form-control" name="password_confirmation">
</div>
</div>
</div>
<div class="form-group">
<div class="col-md-6 col-md-offset-4">
<button type="submit" class="btn btn-primary">
Save
</button>
</div>
</div>
public function store(Request $request)
{
$emp = new Employee;
$emp->firstname = request('firstname');
$emp->lastname = request('lastname');
$emp->department = request('department');
$emp->save();
if ($emp->department != 'administration') {
$user = new User;
$user->firstname = request('firstname');
$user->lastname = request('lastname');
$user->role = 'worker';
$user->username = request('username');
$user->password = bcrypt(request('password'));
$user->save();
$job = new Job;
$job->firstname = request('firstname');
$job->lastname = request('lastname');
$job->subject = request('department');
$job->save();
}
return redirect('/employees');
}
不幸的是我的代码不起作用,从 google chrome 网络开发工具控制台返回的错误是
An invalid form control with name='username' is not focusable.
但是我没有设置该属性,您可以从表单中看到。我如何让它发挥作用?
在你的表单中;类型应该是 text 而不是 username
<input id="username" type="username" class="form-control" name="username" value="{{ old('username') }}">
我搜索了类似的问题,但 none 似乎符合我打算做的事情。我有一个带有隐藏部分的表单,只有在选择一个选项时才会显示。我不希望我的控制器担心这个隐藏部分的值,如果它是隐藏的(意味着没有用户输入,因为用户没有看到它)。但是如果有输入,那么控制器应该处理请求值。下面是代码
<form class="form-horizontal" role="form" method="POST" action="/employees">
{{ csrf_field() }}
<div class="panel-title">Employee Details</div><br>
<div class="form-group">
<label for="firstname" class="col-md-4 control-label">Firstname</label>
<div class="col-md-6">
<input id="firstname" type="text" class="form-control" name="firstname" value="{{ old('firstname') }}" required autofocus>
</div>
</div>
<div class="form-group>
<label for="lastname" class="col-md-4 control-label">Lastname</label>
<div class="col-md-6">
<input id="lastname" type="text" class="form-control" name="lastname" value="{{ old('lastname') }}" required autofocus>
</div>
</div>
<div class="form-group}">
<label for="department" class="col-md-4 control-label">Department</label>
<div class="col-md-6">
<select name="department" id="dept" class="form-control" required autofocus>
<option class="text-muted">-- Select Department --</option>
<option value="administration">Adminstration</option>
<option value="worker">Worker</option>
</select>
</div>
</div>
<div class="col-md-12" id="teacred">
<div class="panel-title">Create Teacher Authentication</div><br>
<div class="form-group">
<label for="username" class="col-md-4 control-label">Username</label>
<div class="col-md-6">
<input id="username" type="username" class="form-control" name="username" value="{{ old('username') }}">
</div>
</div>
<div class="form-group">
<label for="password" class="col-md-4 control-label">Password</label>
<div class="col-md-6">
<input id="password" type="password" class="form-control" name="password">
</div>
</div>
<div class="form-group">
<label for="password-confirm" class="col-md-4 control-label">Confirm Password</label>
<div class="col-md-6">
<input id="password-confirm" type="password" class="form-control" name="password_confirmation">
</div>
</div>
</div>
<div class="form-group">
<div class="col-md-6 col-md-offset-4">
<button type="submit" class="btn btn-primary">
Save
</button>
</div>
</div>
public function store(Request $request)
{
$emp = new Employee;
$emp->firstname = request('firstname');
$emp->lastname = request('lastname');
$emp->department = request('department');
$emp->save();
if ($emp->department != 'administration') {
$user = new User;
$user->firstname = request('firstname');
$user->lastname = request('lastname');
$user->role = 'worker';
$user->username = request('username');
$user->password = bcrypt(request('password'));
$user->save();
$job = new Job;
$job->firstname = request('firstname');
$job->lastname = request('lastname');
$job->subject = request('department');
$job->save();
}
return redirect('/employees');
}
不幸的是我的代码不起作用,从 google chrome 网络开发工具控制台返回的错误是
An invalid form control with name='username' is not focusable.
但是我没有设置该属性,您可以从表单中看到。我如何让它发挥作用?
在你的表单中;类型应该是 text 而不是 username
<input id="username" type="username" class="form-control" name="username" value="{{ old('username') }}">