在laravel中,我创建了一个表格。目前,我正在研究此形式的输入字段的验证。当我试图验证某些输入字段而其他没有验证其他问题时,我遇到了一个问题。例如,应验证邮件,但没有catering_name(不是必须填写此字段,它的一个选项(
我尝试了所有可以找到的验证方法。我不断遇到相同的错误。
Method IlluminateValidationValidator::validatePhone does not exist.
我想我缺少一些东西。
我尝试过:
- 验证器:: make($请求 -> ...
- $ this-> validate(request((,[...
- $ request-> validate([...
bellow,您将找到应在数据库中输入的所有数据。如果我删除验证部分,则将数据插入数据库。我认为问题与我试图验证的方式存在。感谢您的任何帮助。
$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();
不幸的是,phone
不是默认验证之一。您可以尝试以下操作:
[
'telefone' => 'required|regex:/(01)[0-9]{9}/',
]
您可以在此处查看Laravel提供的可用验证列表。根据对您的重要性,有多种更复杂的选择。
- 有包装易于插头和播放,例如Laravel-Phone。
- 您可以使用
php artisan make:rule phone_number
创建自己的自定义验证,然后编辑制定的新规则:
namespace AppRules;
use IlluminateContractsValidationRule;
class PhoneNumber implements Rule
{
/**
* Determine if the validation rule passes.
*
* @param string $attribute
* @param mixed $value
* @return bool
*/
public function passes($attribute, $value)
{
// logic here, most likely some sort of regex.
}
/**
* Get the validation error message.
*
* @return string
*/
public function message()
{
return 'The :attribute must be a valid phone number.';
}
}