5. URL của controller action (URL for controller action)

https://viblo.asia/p/tap-18-url-laravel-gDVK2pyjlLj

Ví dụ đã hoàn thành:

C:\xampp\htdocs\blog\routes\web.php

Route::get('/home', 'HomeController@index');

C:\xampp\htdocs\blog\app\Http\Controllers\HomeController.php

public function index() {
    echo action('HomeController@index');
  }

Với method action, bạn chỉ cần truyền controller action đã định nghĩa, nó sẽ trả về URL đầy đủ của route chứa controller action đó. Bạn có thể truyền controller action theo dạng chuỗi Namespace\NameController@method hoặc dưới dạng mảng.

Dạng chuỗi:

$url = action('HomeController@index');

Lưu ý: Bạn không cần phải thêm namespace App\Http\Controllers trước các controller khi truyền tham số nếu truyền theo dạng chuỗi.

Dạng mảng:

use App\Http\Controllers\HomeController;

$url = action([HomeController::class, 'index']);

Nếu route bạn có chứa tham số, bạn có thể làm như sau:

$url = action('UserController@profile', ['id' => 1]);

Chẳng hạn mình có route như sau:

Route::get('/home', 'HomeController@index');

Bây giờ mình muốn lấy URL của route đó thông qua controller action, mình có thể làm thế này:

echo action('HomeController@index'); // http://localhost:8000/home

Last updated