在FormRequest表单验证器中获取url中的值
下面由Laravel教程栏目给大家介绍在FormRequest表单验证器中获取url中的值,希望对需要的朋友有所帮助!
最近在自己做一个blog,根据 Laravel项目开发规范来写”优雅”的代码。
项目的路由大概都是这样的
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');
验证器用的是继承FormRequest基类来验证的,代码如下
<?php namespace App\Http\Requests;use Illuminate\Validation\Rule;class KeywordRequest extends Request{ public function rules() { //$this->route('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' => '关键字已存在,请重新填写' ]; }}
根据请求的方法不同来进行验证
为了保持规范我在更新请求的时候的,并没有把id放到form表单中,只放在了URL中,在官方文档中也有这样的方法。
use Illuminate\Validation\Rule; Validator::make($data, [ 'email' => [ 'required', Rule::unique('users')->ignore($user->id), ],]);
但是这个$user->id一直不知道怎么获取,在网上终于找到一个方法,符合我的要求
$this->route('id')
Atas ialah kandungan terperinci 在FormRequest表单验证器中获取url中的值. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Alat AI Hot

Undresser.AI Undress
Apl berkuasa AI untuk mencipta foto bogel yang realistik

AI Clothes Remover
Alat AI dalam talian untuk mengeluarkan pakaian daripada foto.

Undress AI Tool
Gambar buka pakaian secara percuma

Clothoff.io
Penyingkiran pakaian AI

Video Face Swap
Tukar muka dalam mana-mana video dengan mudah menggunakan alat tukar muka AI percuma kami!

Artikel Panas

Alat panas

Notepad++7.3.1
Editor kod yang mudah digunakan dan percuma

SublimeText3 versi Cina
Versi Cina, sangat mudah digunakan

Hantar Studio 13.0.1
Persekitaran pembangunan bersepadu PHP yang berkuasa

Dreamweaver CS6
Alat pembangunan web visual

SublimeText3 versi Mac
Perisian penyuntingan kod peringkat Tuhan (SublimeText3)

Topik panas



Kaedah untuk mendapatkan kod kembali apabila menghantar e -mel Laravel gagal. Apabila menggunakan Laravel untuk membangunkan aplikasi, anda sering menghadapi situasi di mana anda perlu menghantar kod pengesahan. Dan pada hakikatnya ...

Tugas Jadual Laravel menjalankan penyelesaian masalah yang tidak responsif semasa menggunakan penjadualan tugas jadual Laravel, banyak pemaju akan menghadapi masalah ini: Jadual: Jalankan ...

Kaedah mengendalikan kegagalan e -mel Laravel untuk menghantar kod pengesahan adalah menggunakan Laravel ...

Cara melaksanakan fungsi jadual klik tersuai untuk menambah data dalam dcatadmin (laravel-admin) semasa menggunakan dcat ...

Laravel - Dump Server - Laravel dump server datang dengan versi Laravel 5.7. Versi sebelumnya tidak termasuk pelayan dump. Pelayan dump akan menjadi kebergantungan pembangunan dalam fail komposer laravel/laravel.

Kesan perkongsian sambungan Redis dalam rangka kerja Laravel dan pilih kaedah apabila menggunakan Rangka Kerja Laravel dan Redis, pemaju mungkin menghadapi masalah: melalui konfigurasi ...

Sambungan pangkalan data penyewa tersuai dalam pakej lanjutan multi-penyewa Larave Stancl/penyewaan ketika membina aplikasi multi-penyewa menggunakan pakej lanjutan multi-penyewa Larave Stancl/penyewaan, ...

Laravel - URL Tindakan - Laravel 5.7 memperkenalkan ciri baharu yang dipanggil "URL tindakan boleh panggil". Ciri ini serupa dengan yang terdapat dalam Laravel 5.6 yang menerima kaedah rentetan dalam tindakan. Tujuan utama sintaks baharu memperkenalkan Laravel 5.7 adalah untuk mengarahkanl
