【发布时间】:2019-12-10 04:07:45
【问题描述】:
在 laravel 中,我创建了一个表单。目前,我正在验证此表单的输入字段。当我尝试验证某些输入字段而其他不验证时,我遇到了问题。例如,mail 应该被验证,但 cocking_name 不是(这个字段不需要填写,它是一个选项)
我已经尝试了所有我能找到的验证方法。我不断收到同样的错误。
Method Illuminate\Validation\Validator::validatePhone does not exist.
我想我错过了一些东西。
我试过了:
- 验证器::make($request->...
- $this->validate(request(), [ ...
- $request->validate([ ...
下面,您将找到所有应该输入数据库的数据。 如果我删除验证部分,数据就会被插入到数据库中。我认为问题在于我如何尝试验证。感谢您的帮助。
$this->validate(request(), [
'add_name' => 'required|min:3',
'add_mail' => 'required|email',
'name' => 'required|min:3',
'email' => 'required|email',
'telefone' => 'numeric|phone',
'gsm' => 'numeric|phone',
'event' => 'required|min:3',
'date_start' => 'required|date|after:tomorrow',
'date_end' => 'required|date|after_or_equal:event_date_start',
'location' => 'required|min:3',
'number' => 'required',
]);
$event = new Event;
$event->add_name = request('add_name');
$event->add_mail = request('add_mail');
$event->name = request('name');
$event->email = request('email');
$event->telefone = request('telefone');
$event->gsm = request('gsm');
$event->name = request('name');
$event->date_start = request('date_start');
$event->date_end = request('date_end');
$event->location = request('location');
$event->number = request('number');
$event->catering = request('catering');
$event->catering_name = request('catering_name');
$event->remarks = request('remarks');
$event->status = Event::STATUS_0;
$event->save();
【问题讨论】:
-
看看 Laravel 5.8 可用的验证规则:laravel.com/docs/5.8/validation#available-validation-rules 没有
phone规则(这就是你的错误validatePhone does not exist.所说的)。您将需要添加自己的一个:laravel.com/docs/5.8/validation#custom-validation-rules。首先尝试一下,如果您有具体问题,请更新您的问题。 -
非常感谢。我找不到问题,只是电话问题。
-
没问题。只是附带说明,除非您的应用程序要求它们采用某种格式,例如用于自动呼叫/发短信的
E.164(即+1{number}),否则可能不需要强制使用某种格式。但同样,取决于使用情况。
标签: laravel forms validation