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

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

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');
  }
```

![](https://1957079826-files.gitbook.io/~/files/v0/b/gitbook-legacy-files/o/assets%2F-MCBeDUD-PK_RF-YgJRe%2F-MD4-g4-xklHrhIZXOU0%2F-MD42RxrRg9O8YPVfXH1%2FScreenshot_1.png?alt=media\&token=f5de7427-660f-4ce8-b5df-f778ad05340b)



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
```
