簡體   English   中英

我可以在 Laravel 中使用相同的控制器名稱 2 次或更多次嗎?

[英]Can I use same controller name 2 or more times in laravel?

我在 laravel 8 項目的 2 個不同文件夾中有相同的控制器名稱(假設 Login.php)。 在路由中,如果我以下列方式使用它們,它會顯示錯誤。

use App\Http\Controllers\my_controller1\Login;
use App\Http\Controllers\my_controller2\Login;

錯誤看起來像

Symfony\\Component\\ErrorHandler\\Error\\FatalError

不能使用 App\\Http\\Controllers\\my_controller2\\Login 作為登錄名,因為該名稱已被使用

如果我按以下方式使用,它不會顯示錯誤:

use App\\Http\\Controllers\\my_controller1\\Login;

Route::get('/loginA',[App\Http\Controllers\my_controller2\Login::class,'abc']);

Route::get('/loginB',[Login::class,'abc']);

注意:文件夾和控制器名稱僅用於假設。

有 2 種不同的 use 語句。 use App\\Http\\Controllers\\my_controller1\\Login; use App\\Http\\Controllers\\my_controller2\\Login;

如果您在同一個文件中同時使用它們,您將需要為其中之一取別名。

use App\Http\Controllers\my_controller2\Login as Login2;

你可以通過像這樣導入它們來給它們不同的名字

use App\Http\Controllers\my_controller1\Login as Login1;
use App\Http\Controllers\my_controller2\Login as Login2;

但是,不應該需要兩個具有相同名稱的控制器,因為這表明它們負責相同的事情並且可能可以合並。

另外,你的命名似乎有點不對; 考慮使用駝峰命名為文件夾名稱(例如\\customControllers\\而不是\\my_controller1\\ )和命名控制器LoginController而不是Login only( 參見 Laravel 的命名約定)。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM