我在Laravel中有一个表单,我想根据一个复选框验证三个文本字段.它是一个编辑用户表单,如果我选择是,我只想更新密码.这是我认为的形式:
Edit: {!! $user->name !!}
{!! Form::model($user, ['method' => 'PATCH', 'action' => ['Ac[email protected]', $user->id], 'files' => true]) !!}
Name: {!! Form::text('name') !!}
Email: {!! Form::text('email') !!}
Update Password? (tick for yes) {!! Form::checkbox('updatepasswordcheck', 0, false) !!}
Old Password: {!! Form::password('oldpassword') !!}
New Password: {!! Form::password('newpassword') !!}
New Password Confirm: {!! Form::password('newpasswordconfirm') !!}
@if($user->role_id == 1)
User Role: {!! Form::select('user_type', ['admin', 'guest'], '1') !!}
@else
User Role: {!! Form::select('user_type', ['admin', 'guest'], '0') !!}
@endif
{!! Form::submit('Update') !!}
{!! Form::close() !!}
@include ('errors.list_errors')
然后,我有一个名为EditAccountRequest的请求,如下所示:
namespace App\Http\Requests;
use App\Http\Requests\Request;
class EditAccountRequest extends Request
{
public function authorize()
{
return true;
}
public function rules()
{
if($this->inputs['updatepasswordcheck'])
{
$rules['oldpassword'] = 'required';
$rules['newpassword'] = 'required';
$rules['newpasswordconfirm'] = 'required';
}
$rules['name'] = 'required|min:3';
$rules['email'] = 'required|email';
return $rules;
}
}
我的问题是,当我看到复选框’updatepasswordcheck’是否为真时,它永远不会起作用,因为输入始终显示为null.有人知道怎么修这个东西吗?