未找到类'app \ Models \ User'Laravel 5.4

问题描述 投票:-1回答:2

出现消息“Class'app \ Models \ User'not found”,但我在几个地方进行了研究,但没有一个解决方案有效。

composer.json:

"autoload": {
    "classmap": [
        "database","Models"
    ],

    "psr-4": {
        "App\\": "app/"
    }
},

user.php的:

namespace App\Models;

class User extends Eloquent{
    public function allUsers(){
        return self::all();     
    }   
}

UserController.php:

namespace App\Http\Controllers;
use App\Models\User;
use Illuminate\Http\Request;
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 App\Http\Controllers;
use App\Models\User;
use Illuminate\Http\Request;
class UserController extends Controller{
    public function __construct(){          
    }
    public function allUsers(){

        $class = '\app\Models\User';
        return $class::allUsers();

    }
    public function getUser($id){

    }
    public function saveUser(){

    }
    public function updateUser($id){

    }
    public function deleteUser($id){

    }
}

有人能帮我吗?

php namespaces composer-php laravel-5.4 psr-4
2个回答
1
投票

转到config/auth.php并将App \ User:类更改为App \ Models \ User :: class。

'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model' => App\Models\User::class,
    ],

还要更改User.php模型的命名空间

namespace App\Models;

0
投票

你应该关心案件。

$class = '\app\Models\User';

不会工作但是

$class = '\App\Models\User';

可能会。


0
投票

我有一次类似的问题。这是我如何解决它这是一个资源文件,我称之为类实例,

$this->user->name

在模型文件中,我称之为

User::class

即使命名空间显然是App \ Models

这不起作用,因为用户模型在App根目录中。所以我将实例更改为

\App\User::class

之后它起作用了

© www.soinside.com 2019 - 2024. All rights reserved.