Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/284.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 为什么我的自定义Laravel路线不起作用?_Php_Laravel_Routes - Fatal编程技术网

Php 为什么我的自定义Laravel路线不起作用?

Php 为什么我的自定义Laravel路线不起作用?,php,laravel,routes,Php,Laravel,Routes,我是拉雷维尔的一名noob,但在我之前的1-2个项目中从未遇到过这个问题。我不知道为什么我的自定义路线不起作用,而欢迎路线却起作用。这是我第一次发现此错误404未找到页面 web.php Route::any('/dashboard', 'Admin\AdminController@tempirelounge')->name('dashboard'); 控制器 namespace App\Http\Controllers\Admin; //use App\Http\Controllers

我是拉雷维尔的一名noob,但在我之前的1-2个项目中从未遇到过这个问题。我不知道为什么我的自定义路线不起作用,而欢迎路线却起作用。这是我第一次发现此错误404未找到页面

web.php

Route::any('/dashboard', 'Admin\AdminController@tempirelounge')->name('dashboard');
控制器

namespace App\Http\Controllers\Admin;
//use App\Http\Controllers\Controller;

class AdminController extends Controller
{
    public function tempirelounge()
    {
        return view('admin/index');
    }
}
Route::any('/dashboard', 'AdminController@tempirelounge')->name('dashboard');
奇怪的是当我试图这么做的时候

Route::get('/dashboard', function () {
    return view('welcome');
});
它不起作用 但当我这么做的时候

Route::get('/', function () {
    return view('welcome');
});
它工作得很好


有人知道为什么这不起作用吗?

您的控制器名称空间是
App\Http\Controllers
,并且在路由中使用
。。。控制器\管理员\AdminController@tempirelounge
哪里为true?

如果您的控制器位于Admin文件夹中,请使用正确的名称空间

替换

App\Http\Controllers


名称空间错误

方法1:

Route::any('/dashboard', 'App\Http\Controllers\AdminController@tempirelounge')->name('dashboard');
方法2:

Route::any('/dashboard', 'App\Http\Controllers\AdminController@tempirelounge')->name('dashboard');
在web.php中

使用App\Http\Controllers\AdminController

namespace App\Http\Controllers\Admin;
//use App\Http\Controllers\Controller;

class AdminController extends Controller
{
    public function tempirelounge()
    {
        return view('admin/index');
    }
}
Route::any('/dashboard', 'AdminController@tempirelounge')->name('dashboard');

尝试清除路由缓存
php artisan路由:清除

尝试:
route::any(“/dashboard”,”AdminController@tempirelounge')->名称(“仪表板”)。路由文件中的名称空间似乎定义错误。或者更改
AdminController
class@ka_lin但是这个控制器在Admin文件夹中!这是否仍然有效?控制器的命名空间应反映文件位置,如果
AdminController
位于
app\Http\Controllers\Admin
中,则命名空间应为
namespace app\Http\Admin\Controllers
。更改名称空间后(为了安全起见)运行
composer dump autoload
@ka_lin,问题是我正在cpanel
Http/Admin/Controllers/
上进行此设置,控制器在哪里
Http/Admin/Controllers/
确定吗?如果您的控制器位于
Admin/Controller
中,您需要在
RouteServiceProvider
中添加新方法,使用您的管理命名空间
受保护的函数mapAdminWebRoutes(){Route::middleware('web')->命名空间('App\Http\Admin\Controllers')->组(基本路径('routes/admin_web.php');}
像这样)并按照上述答案将此方法放入
map()
method)中,我现在更改了位置,它类似于
\Controllers\Admin\AdminController.php
,但仍然无法使用您的代码。您将Admin放置在错误的位置,它应该位于\Controllers\Admin not Admin\Controllers等控制器之后
\Controllers\Admin\AdminController.php
是现在的位置,并使用了您的名称空间,仍然不工作!它现在应该可以工作了,如果没有,请尝试运行composer optimize或php artisan route:clear using cmd此安装程序在cpanel上,而不是在localhost上,因此无法将cmd用于thisAhh..好的,然后执行以下操作…1。检查是否有多个控制器具有相同的类名…这会在我们复制控制器文件时发生。喜欢AdminController.php和AdminController\u Copy.php都将具有相同的类名Admin Controller。请取下一个。2.有时cpanel会这样做..更正所有错误。然后重命名根文件夹,或者如果您的应用程序是公共html,则将应用程序移动到子文件夹,并将域指向新文件夹。这将强制cpanel运行这两个命令。此项目位于cpanel上