Thông báo xác thực tùy chỉnh của Laravel không hoạt động

đang làm việc? . và tôi thay thế ucwords thành strtoupper, nó sẽ cho tôi The. trường THUỘC TÍNH là bắt buộc

Tôi đang sử dụng Laravel 5. 1 LTS

Có ai biết cách đặt ucwords cho tất cả các thuộc tính không, thay vào đó mình cần đặt từng thuộc tính

Tôi đã thực hiện một số nghiên cứu về khuôn khổ, tôi nhận thấy rằng trong 5. 2 https. //github. com/laravel/framework/pull/11337/files

nó có liên quan đến từ thay thế

Có thể thực hiện trong 5. 1? . php Dòng 1698

  protected function doReplacements[$message, $attribute, $rule, $parameters]
    {
        $message = str_replace[':attribute', $this->getAttribute[$attribute], $message];

        if [isset[$this->replacers[Str::snake[$rule]]]] {
            $message = $this->callReplacer[$message, $attribute, Str::snake[$rule], $parameters];
        } elseif [method_exists[$this, $replacer = "replace{$rule}"]] {
            $message = $this->$replacer[$message, $attribute, $rule, $parameters];
        }

        return $message;
    }

Cảm ơn

chrislentz nói

Câu hỏi ban đầu của tôi thực sự là 2 câu hỏi, vì vậy đây là 2 câu trả lời

Để làm việc với các thông báo tùy chỉnh khi sử dụng phương thức phụ thuộc L5 FormRequest mới để thực hiện xác thực, bạn có thể bao gồm ghi đè sau trong SignUpRequest của mình. tập tin php

  public function messages[] {
  	return [
  		'required' => ucwords[':attribute'] . ' is required.'
  	];
  }

HOẶC

Bạn có thể chỉnh sửa các thông báo tùy chỉnh có dạng lang/xx/validation. tập tin php

  /*
  |--------------------------------------------------------------------------
  | Custom Validation Language Lines
  |--------------------------------------------------------------------------
  |
  | Here you may specify custom validation messages for attributes using the
  | convention "attribute.rule" to name the lines. This makes it quick to
  | specify a specific custom language line for a given attribute rule.
  |
  */

  'custom' => [
  	'attribute-name' => [
  		'rule-name' => 'custom-message',
  	],
  ],

Vấn đề duy nhất là cả hai vùng thông báo tùy chỉnh này đều không cho phép tôi bọc. thuộc tính trong ucwords[] [đó là câu hỏi thứ hai của tôi. ]. Vì vậy, nhờ một tweet từ Taylor, những gì tôi đã làm chỉ là sử dụng phần thuộc tính tùy chỉnh của /lang/xx/validation. tập tin php

Hôm nay, tôi sẽ cho bạn biết ví dụ về thông báo lỗi tùy chỉnh xác thực của laravel. bạn sẽ tìm hiểu trình xác nhận thông báo lỗi tùy chỉnh của laravel. Trong bài viết này, chúng tôi sẽ triển khai thông báo xác thực tùy chỉnh của laravel trong bộ điều khiển. Bài viết này đi vào chi tiết về các thông báo lỗi tùy chỉnh xác thực biểu mẫu laravel

Ở đây, tôi sẽ chỉ cho bạn ba cách để đặt thông báo lỗi tùy chỉnh với xác thực của laravel. chúng tôi sẽ thêm các thông báo lỗi tùy chỉnh trong ứng dụng laravel 6, laravel 7, laravel 8 và laravel 9. đôi khi chúng ta cần thay đổi thông báo lỗi xác thực laravel mặc định thành thông báo lỗi của chính mình

Vì vậy, hãy xem ba cách dưới đây để thay đổi thông báo lỗi xác thực trong ứng dụng laravel 7

ví dụ 1. Sử dụng tệp ngôn ngữ

ví dụ 2. Trực tiếp trong mã điều khiển

ví dụ 3. Sử dụng Yêu cầu tùy chỉnh

Hãy xem từng ví dụ một

ví dụ 1. Sử dụng tệp ngôn ngữ

Ở điểm đầu tiên, chúng tôi sẽ đặt thông báo tùy chỉnh bằng cách trực tiếp trên laravel đặt tệp mặc định. nhưng nó sẽ thay đổi trong toàn bộ dự án của bạn. Vì vậy, dưới đây tôi đã thêm mã xác thực bộ điều khiển cho mô-đun người dùng của mình như dưới đây

Bộ điều khiển người dùng. php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\User;

class UserController extends Controller

{

/**

* Display a listing of the resource.

*

* @return \Illuminate\Http\Response

*/

public function index[Request $request]

{

$users = User::all[];

return view['users.index', compact['users']];

}

/**

* Store a newly created resource in storage.

*

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

*/

public function store[Request $request]

{

$request->validate[[

'name' => 'required',

'email' => 'required|email|unique:users,email',

'password' => 'required|same:confirm_password'

]];

$input = $request->all[];

$input['password'] = bcrypt[$input['password']];

User::create[$input];

return redirect[route['users.index']];

}

}

Bây giờ tôi muốn thay đổi thông báo lỗi xác thực cho trường "tên", vì vậy hãy mở "xác thực. php" và thay đổi như dưới đây

tài nguyên/lang/vi/xác thực. php

....

'custom' => [

'name' => [

'required' => 'The :attribute field can not be blank value.',

],

],

....

ví dụ 2. Trực tiếp trong mã điều khiển

Trong tùy chọn thứ hai, chúng ta có thể thay đổi trực tiếp từ phương thức điều khiển, tôi nghĩ nếu bạn muốn thực hiện nhanh thì tùy chọn này sẽ hoàn hảo

Bộ điều khiển người dùng. php

namespace App\Http\Controllers;

use Illuminate\Http\Request;

use App\User;

class UserController extends Controller

{

/**

* Display a listing of the resource.

*

* @return \Illuminate\Http\Response

*/

public function index[Request $request]

{

$users = User::all[];

return view['users.index', compact['users']];

}

/**

* Store a newly created resource in storage.

*

* @param \Illuminate\Http\Request $request

* @return \Illuminate\Http\Response

*/

public function store[Request $request]

{

$request->validate[[

'name' => 'required',

'email' => 'required|email|unique:users,email',

'password' => 'required|same:confirm_password'

],

[ 'name.required' => 'The :attribute field can not be blank value.']];

$input = $request->all[];

$input['password'] = bcrypt[$input['password']];

User::create[$input];

return redirect[route['users.index']];

}

}

ví dụ 3. Sử dụng Yêu cầu tùy chỉnh

Trong tùy chọn thứ ba, chúng tôi phải tạo yêu cầu tùy chỉnh và sau đó bạn có thể sử dụng nó trong bộ điều khiển của mình, phương pháp này là cách tốt hơn của laravel, vì vậy có thể chạy lệnh sau để tạo yêu cầu biểu mẫu người dùng

Làm cách nào để tùy chỉnh thông báo lỗi xác thực trong laravel?

Để khắc phục điều này, chúng ta có thể tùy chỉnh các thông báo lỗi bằng cách chuyển một mảng thứ hai làm đối số, chứa các khóa được tạo bằng cách sử dụng tên của tham số, dấu chấm và sau đó là tên của . - the value will be the error message we want to display.

Phương pháp được sử dụng để chỉ định thông báo tùy chỉnh cho lỗi trình xác thực trong yêu cầu biểu mẫu là gì?

Sau khi kiểm tra xem yêu cầu có vượt qua được xác thực hay không, bạn có thể sử dụng phương pháp withErrors để đưa thông báo lỗi vào phiên. Khi sử dụng phương pháp này, biến $errors sẽ tự động được chia sẻ với chế độ xem của bạn sau khi chuyển hướng, cho phép bạn dễ dàng hiển thị lại cho người dùng.

Làm cách nào để xác thực các từ chính xác trong laravel?

Để xác thực các từ chính xác, bạn có thể sử dụng Quy tắc. trong phương thức có sẵn với laravel . Sử dụng quy tắc. trong phương thức, bất kỳ giá trị nào được cung cấp bởi quy tắc này phải được khớp nếu không nó sẽ thất bại.

Làm cách nào để thay đổi thông báo xác thực mặc định trong laravel?

sử dụng Ứng dụng\Http\Requests\CustomRequest;. phản hồi chức năng công cộng [CustomRequest $request] { $validation = Trình xác thực. make[$request->all[], [ 'reponse' => 'required', ]];

Chủ Đề