出现了消息" class'app models under'找不到",但我已经在多个地方进行了研究,但没有任何解决方案。
composer.json:
"autoload": {
"classmap": [
"database","Models"
],
"psr-4": {
"App\": "app/"
}
},
user.php:
namespace AppModels;
class User extends Eloquent{
public function allUsers(){
return self::all();
}
}
usercontroller.php:
namespace AppHttpControllers;
use AppModelsUser;
use IlluminateHttpRequest;
class UserController extends Controller{
protected $user = null;
public function __construct(User $user){
$this->user = $user;
}
public function allUsers(){
return $this->user->allUsers();
}
public function getUser($id){
}
public function saveUser(){
}
public function updateUser($id){
}
public function deleteUser($id){
}
}
usercontroller替代方案(也不工作(
namespace AppHttpControllers;
use AppModelsUser;
use IlluminateHttpRequest;
class UserController extends Controller{
public function __construct(){
}
public function allUsers(){
$class = 'appModelsUser';
return $class::allUsers();
}
public function getUser($id){
}
public function saveUser(){
}
public function updateUser($id){
}
public function deleteUser($id){
}
}
有人可以帮我吗?
转到 config/auth.php
并更改应用程序 user:class to app models user :: class。
'providers' => [
'users' => [
'driver' => 'eloquent',
'model' => AppModelsUser::class,
],
还更改user.php模型的名称空间
namespace AppModels;
您应该关心案例。
$class = 'appModelsUser';
行不通,但是
$class = 'AppModelsUser';
可能会。
我曾经有一个类似的问题。这是我解决的方式这是一个资源文件,我称之为类实例,
$this->user->name
和模型文件中,我称其为
User::class
即使命名空间显然是app models
无效,因为用户模型在App root Directory中。所以我将实例更改为
AppUser::class
它在那之后起作用