iT邦幫忙

0

php laravel 找不到控制器

BB 2021-08-05 23:09:473053 瀏覽
  • 分享至 

  • xImage

包含上網爬文找了許多方法了
但還是一直顯示出Target class [UserAuthController] does not exist.
請問有甚麼方法可以解決嗎?

<?php
    //檔案位置: app/Http/Controllers/User/UserAuthController.php
    namespace App\Http\Controllers\User;
    use App\Http\Controllers\Controller;


    class UserAuthController extends Controller{
        
        public function signUpPage(){
            $title = ["title"=>"打招呼"];
            return view("auth.signUp", $title);
        }
    }
?>
Route::group(["prefix" => "user"], function(){
    Route::group(["prefix" =>  "auth"], function(){
        Route::get("/sign-up", "UserAuthController@signUpPage");
        以下皆試過
        \\Route::get("/sign-up", [UserAuthController::class,"signUpPage"])
        \\Route::get("/sign-up", 'App\Http\Controllers\User\UserAuthController@signUpPage');
    });
});
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

1 個回答

2
小魚
iT邦大師 1 級 ‧ 2021-08-05 23:56:23
最佳解答

你的是Laravel 8嗎?
新版的跟舊版的不一樣,
新版的可以這樣子引用

use App\Http\Controllers\HomeController;
Route::group(['prefix' =>'home'], function(){
    Route::get('/index', [HomeController::class, 'index']);
    Route::post('/index', [HomeController::class, 'indexProcess']);
    Route::get('/about', [HomeController::class, 'about']);
    Route::get('/main', [HomeController::class, 'main']);
});

這個我今年的文章也會提到,
重點是前面需要use

看更多先前的回應...收起先前的回應...
BB iT邦新手 4 級 ‧ 2021-08-06 00:04:09 檢舉

所以是我第二段程式碼改成
use App\Http\Controllers\Uesr\UserAuthController;
Route::group(["prefix" => "user"], function(){
Route::group(["prefix" => "auth"], function(){
Route::get("/sign-up", [UserAuthController::class, "signUpPage"]);嗎
我試試看

小魚 iT邦大師 1 級 ‧ 2021-08-06 00:07:16 檢舉

有引用應該就可以用了.

use App\Http\Controllers\User\UserAuthController;
Route::group(["prefix" => "user"], function(){
    Route::group(["prefix" =>  "auth"], function(){
        Route::get("/sign-up", [UserAuthController::class,"signUpPage"])
    });
});

BB iT邦新手 4 級 ‧ 2021-08-06 00:20:36 檢舉

一樣還是跑出
Target class [App\Http\Controllers\User\UserAuthController] does not exist.
找不到控制器
是用laravel 8 沒錯

BB iT邦新手 4 級 ‧ 2021-08-06 00:32:20 檢舉

有了ok了 應該是跟者網路上找的資料把一些設定改掉沒改回來
新建專案之後就可以了 謝謝

Crane iT邦新手 5 級 ‧ 2021-10-29 10:09:53 檢舉

BB,請問有發現是什麼問題嗎?

我也是遇到這個問題,不過更離奇的是,我去另外一個專案處理完事情,過幾天再回來就出現這問題了 (丈二金剛摸不到後腦)

Crane iT邦新手 5 級 ‧ 2021-10-29 10:30:53 檢舉

ㄜ... 問完自己就發現原因了 (丈二又摸到後腦了)

是我之前為了統一不同專案之間的寫法,忘了版本的問題
Laravel 5.8 應該寫成
Route::get('<api 路徑>', 'Api\AppController@getVersion');


Laravel 8 應該寫成
Route::get('<api 路徑>', 'App\Http\Controllers\Api\AppController@getVersion');

我要發表回答

立即登入回答