Dan*_*yle 2 validation laravel laravel-4 ardent
我正在尝试使用 Ardent 从刀片模板中的表单返回错误。这是我在控制器中使用的功能:
public function store()
{
$subscriber = new Subscriber;
$subscriber->first_name = Input::get('first_name');
$subscriber->last_name = Input::get('last_name');
$subscriber->email = Input::get('email');
if(!$subscriber->save())
{
return Redirect::to('/admin/subscriber/create')->with('errors', $subscriber->errors()->all());
}
return Redirect::to('/admin/subscriber')->with('status', 1);
}
Run Code Online (Sandbox Code Playgroud)
我在模型中的热心规则:
public static $rules = array(
'email' => 'required|email|unique:users',
'first_name' => 'required',
'last_name' => 'required',
);
public static $customMessages = array(
'first_name.required' => 'First name is required.',
'last_name.required' => 'Last name is required.',
'email.required' => 'Email is required.',
'email.email' => 'Use a real email address!',
'email.unique' => 'This email address already exists!',
);
Run Code Online (Sandbox Code Playgroud)
我在刀片模板中调用的内容:
@if ($errors->has())
@foreach ($errors->all() as $error)
<div class='bg-danger alert'>{{ $error }}</div>
@endforeach
@endif
Run Code Online (Sandbox Code Playgroud)
每次我尝试在表单中输入不应验证的数据时,我都会收到错误Call to a member function has() on array,该错误指的是$errors->has()
有人有什么想法吗?干杯
当您向视图提供 时$errors,您可以使用:
->with('errors', $subscriber->errors()->all())
Run Code Online (Sandbox Code Playgroud)
这意味着您已经调用了all()将错误转换为数组的方法。您需要删除该all()呼叫,即:
->with('errors', $subscriber->errors())
Run Code Online (Sandbox Code Playgroud)
然后您可以像您一样在视图中使用has()and 。all()