验证并非所有形式的字段 - laravel



在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.';
    }
}

最新更新