Maison  >  Article  >  cadre php  >  Obtenir la valeur dans l'URL dans le validateur de formulaire FormRequest

Obtenir la valeur dans l'URL dans le validateur de formulaire FormRequest

藏色散人
藏色散人avant
2021-01-13 15:32:161982parcourir

Ce qui suit est une introduction pour obtenir la valeur de l'URL dans le validateur de formulaire FormRequest à partir de la colonne Tutoriel Laravel J'espère que cela sera utile aux amis. besoin!

Obtenir la valeur dans l'URL dans le validateur de formulaire FormRequest

Je crée actuellement un blog moi-même, écrivant du code "élégant" selon les spécifications de développement du projet Laravel.
Le routage du projet est probablement comme ça

Route::get('/keywords','KeywordsController@index');
Route::get('/keywords/create','KeywordsController@create');
Route::post('/keywords/store','KeywordsController@store');
Route::delete('/keywords/{id}','KeywordsController@destory');
Route::get('/keywords/{id}/edit','KeywordsController@edit');
Route::put('/keywords/{id}','KeywordsController@update');

Le validateur hérite de la classe de base FormRequest pour la vérification Le code est le suivant

5705b8bddb444eeb674bbbff5cf462dfroute('id') 获取url占位符为id的数据
        switch ($this->method())
        {
            case  'POST' :
            {
                return [
                  'keyword' => 'required|unique:keywords'
                ];
            }
            case 'PUT':
            case 'PATCH':
            {
              return [
                'keyword' => [
                  'required',
                  Rule::unique('keywords')->ignore($this->route('id')),
                ],
              ];
            }
            case 'DELETE':
            case 'GET':
            default:
            {
                return [];
            }
        }
    }
    public function messages()
    {
       return [
           'keyword.required' => '关键字不能为空',
           'id.required' => 'id不能为空',
           'keyword.unique' => '关键字已存在,请重新填写'
       ];
    }}

La vérification est effectuée selon la méthode de requête<.> Afin de maintenir le standard, lorsque j'ai mis à jour la demande, je n'ai pas mis l'identifiant dans le formulaire, mais uniquement dans l'URL. Il existe également une telle méthode dans les documents officiels.

use Illuminate\Validation\Rule;
Validator::make($data, [
    'email' => [
        'required',
        Rule::unique('users')->ignore($user->id),
    ],]);

Mais je n'ai jamais su comment obtenir cet $user->id, j'ai finalement trouvé une méthode en ligne qui répondait à mes exigences

$this->route('id')
.

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer