Laravel Validation 做表單驗證

Laravel Validation 表單驗證

 

Laravel提供的表單驗證實在是太方便了,
用過之後會覺得之後如果開發沒有Laravel怎麼辦xDD

Laravel Docs Validation 在此 

其實官方文件就很詳細了

我在這邊給自己筆記一下

處理錯誤訊息

呼叫一個 Validator 實例的 errors 方法,會得到一個 Illuminate\Support\MessageBag 的實例,裡面有許多方便的方法讓你操作錯誤訊息。


1.建立一個驗證方法

php artisan make:request MyRequest

新的方法就會產生在 app/Http/Requests 底下

2.來撰寫規則吧
 

public function rules()
{
    return [
        'title' => 'required|unique:posts|max:255',
        'body' => 'required',
    ];
}

自訂錯誤訊息

public function messages()
{
    return [
       'required' => ':attribute 的欄位是必要的。',
       'max' => ':attribute 的欄位字數不超過 :max字元。',
    ];
}

自訂錯誤欄位實際名稱

public function attributes()
    {
        return [
            'title' = '標題',
            'body'  = '訊息',
        ];
    }
}

最後輸出-取得所有錯誤訊息

protected function formatErrors(Validator $validator)
{
    $errorMessages = '';

    //這邊為一個錯誤訊息最後配一個<br/>
    foreach ($validator->messages()->all(':message<br>') as $message) {
        $errorMessages .= $message;
    }
    
    return $errorMessages;
}

那寫好的方法要怎麼拿來用呢??

在Controller 的function 

public function store(MyRequest $request)
{
    //過了驗證才會繼續跑~
}

凡是客製化都比較困難一點,所以筆記一下。

Laravel 提供很多驗證方法 這還只是一小部分呢!