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

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

藏色散人
Libérer: 2021-01-14 08:53:55
avant
2058 Les gens l'ont consulté

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');
Copier après la connexion

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

<?php

namespace App\Http\Requests;use Illuminate\Validation\Rule;class KeywordRequest extends Request{
    public function rules()
    {
        //$this->route(&#39;id&#39;) 获取url占位符为id的数据
        switch ($this->method())
        {
            case  &#39;POST&#39; :
            {
                return [
                  &#39;keyword&#39; => &#39;required|unique:keywords&#39;
                ];
            }
            case &#39;PUT&#39;:
            case &#39;PATCH&#39;:
            {
              return [
                &#39;keyword&#39; => [
                  &#39;required&#39;,
                  Rule::unique(&#39;keywords&#39;)->ignore($this->route(&#39;id&#39;)),
                ],
              ];
            }
            case &#39;DELETE&#39;:
            case &#39;GET&#39;:
            default:
            {
                return [];
            }
        }
    }
    public function messages()
    {
       return [
           &#39;keyword.required&#39; => &#39;关键字不能为空&#39;,
           &#39;id.required&#39; => &#39;id不能为空&#39;,
           &#39;keyword.unique&#39; => &#39;关键字已存在,请重新填写&#39;
       ];
    }}
Copier après la connexion

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, [
    &#39;email&#39; => [
        &#39;required&#39;,
        Rule::unique(&#39;users&#39;)->ignore($user->id),
    ],]);
Copier après la connexion

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(&#39;id&#39;)
Copier après la connexion
.

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!

Étiquettes associées:
source:learnku.com
Déclaration de ce site Web
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal