The*_*ark 3 php laravel laravel-routing laravel-5
我对Laravel很新,当我遇到这个错误时,我正在阅读教程.这是我在'testController.php'中的代码.
<?php
namespace app\Http\Controllers;
use app\Http\Controllers\Controller;
class testController extends \app\Http\Controllers\Controller {
public function getAbout()
{
return view('Learning.about') ;
}
public function getHome()
{
return view('Learning.index');
}
}
Run Code Online (Sandbox Code Playgroud)
这是我的'routes.php'.
<?php
Route::get('test', [
'as' => 'test',
'uses' => 'testController@getHome',
]);
Route::get('about', [
'as' => 'about',
'uses' => 'testController@getAbout',
]);
Run Code Online (Sandbox Code Playgroud)
我收到此错误:
未找到类'app\Http\Controllers\Controller'
我该如何解决这个错误?
让我们一步一步来看看.
composer.json在项目根目录中打开文件.找到该autoload部分.应该看起来像这样:
{
...
"autoload": {
"classmap": [
"database"
],
"psr-4": {
"App\\": "app/"
}
},
}
Run Code Online (Sandbox Code Playgroud)
确保在psr-4选项下有此配置:
"App\\": "app/"
Run Code Online (Sandbox Code Playgroud)
此配置告诉作曲家我们要app使用psr-4约定自动加载目录中的所有类,并将其置于App命名空间下.
首先,您的控制器文件名应该是CamelCase样式.所以我们必须将其重命名为TestController.php.确保它保存在app/Http/Controllers目录下.
现在打开你的TestController.php文件,我们必须像这样大写命名空间和类名:
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
class TestController extends Controller {
public function getAbout()
{
return view('Learning.about') ;
}
public function getHome()
{
return view('Learning.index');
}
}
Run Code Online (Sandbox Code Playgroud)
请注意,我们也改变了这一行:
class testController extends \app\Http\Controllers\Controller
Run Code Online (Sandbox Code Playgroud)
成:
class TestController extends Controller
Run Code Online (Sandbox Code Playgroud)
由于我们已经导入了基Controller类,因此我们不必指定完全限定名.我们Controller使用use关键字导入了类:
use App\Http\Controllers\Controller;
Run Code Online (Sandbox Code Playgroud)
保存TestController.php文件.
现在我们必须更新我们的app\Http\routes.php文件.我们只需要大写控制器名称:
<?php
Route::get('test', ['uses' => 'TestController@getHome', 'as' => 'test']);
Route::get('about', ['uses' => 'TestController@getAbout', 'as' => 'about']);
Run Code Online (Sandbox Code Playgroud)
现在最后要做的事情.打开终端/命令提示符.转到项目目录并运行以下命令:
composer dump-autoload
Run Code Online (Sandbox Code Playgroud)
此命令将更新自动加载器文件(在此处阅读更多内容).
现在,如果您打开浏览器并点击/test路线,您应该看到来自的内容resources/views/Learning/index.blade.
| 归档时间: |
|
| 查看次数: |
4721 次 |
| 最近记录: |