我刚刚在一个名为blog1的项目中在xampp下安装了Laravel . 文档说默认命名空间是App . 我创建了以下控制器:
namespace App\Http\Controllers;
use App\User;
use App\Repositories\UserRepository;
use App\Http\Controllers\Controller;
class UserController extends Controller
{
/**
* The user repository implementation.
*
* @var UserRepository
*/
protected $users;
/**
* Create a new controller instance.
*
* @param UserRepository $users
* @return void
*/
public function __construct(UserRepository $users)
{
$this->users = $users;
}
/**
* Show the profile for the given user.
*
* @param int $id
* @return Response
*/
public function show($id)
{
$user = $this->users->find($id);
return view('user.profile', ['user' => $user]);
}
}
在公共目录下使用名称testController.php .
当我http://localhost/blog1/testController.php我在第10行的C:\ xampp \ htdocs \ blog1 \ public \ testController.php中找不到以下类'App\Http\Controllers\Controller' . 有什么建议吗?我试图将命名空间设置为blog1,但现在blog1 / Http?Controller没有发生任何事情 .
我通过作曲家重新安装Laravel .
2 回答
在PHP中阅读PSR-4,PSR-0 (deprecated)和autoloading . 引发错误,因为类名(
UserController
)必须与文件名testController.php
完全相同,因此您应将文件命名为UserController.php
或您的类testController
.另请阅读Laravel's routing和composer's autoloading .
laravel的错误是有效的 . 您将文件
TestController.php
放在公共目录下,并为该类提供名称空间 -App\Http\Controllers
.您应该将
TestController.php
放在目录中:这样,您的代码不会再次出错!
希望这可以帮助!