【发布时间】:2016-07-27 01:10:48
【问题描述】:
我正在尝试验证我的 Laravel 应用程序中的复选框。复选框的 HTML 名称和值是从我的数据库生成的,我正在循环显示所有框。如何执行验证规则,以便至少选中或需要一个框?这些是我的刀片文件中的相关视图代码和我的控制器中的方法。
//Snippet from create-user.blade.php
<div class='form-group'>
@foreach ($roles as $role) //$role variable gets its data from the db
{{ Form::label('role', $role->display_name) }}
{{ Form::checkbox($role->name, $role->id) }}
@endforeach
</div>
//Snippet from UserController.php
public function addUser(Request $request)
{
$this->validate($request, [
'name'=>'required|max:120|alpha_dash',
'email'=>'required|email|unique:users',
$role->name =>'required', //This line results in 'Undefined variable: role'
'password'=>'required|min:4',
'password_confirmation'=>'required|min:4']
);
$email = $request['email'];
$name = $request['name'];
$password = bcrypt($request['password']);
$user = new User();
$user->email = $email;
$user->name = $name;
$user->password = $password;
$user->save();
return redirect()->route('account');
}
我在验证数组中传递什么来代替$role->name?
谢谢
【问题讨论】:
-
尝试通过
Log::error()方法查看$request->all()的输出...您将看到根据您的复选框名称,数组中将有多个项目..您需要循环该数组并分别验证每个字段。
标签: php validation laravel checkbox laravel-5.2