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

时间:2017-05-05 18:23:26

标签: php namespaces composer-php laravel-5.4 psr-4

出现消息“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){

    }
}

有人可以帮助我吗?

3 个答案:

答案 0 :(得分:0)

你应该关心案件。

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

赢了,但

module.exports.changePass = function (req, res) {
    console.log(req.body.email)

db.user.find({ where: { name: req.body.name, email: req.body.email } }
    ).then(function (result) {
        if (result == null) {
            res.statusCode = '400'
            res.json({
                'error': 'Bad request, user not found'
            })
        } else {
            var random = Math.random().toString(36).slice(-8);
            result.updateAttributes({
                password: random
            }).then(function (result) {
                res.statusCode = '200';
                res.json(
                    random
                );
            });
        }
    });
}

可能会。

答案 1 :(得分:0)

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

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

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

namespace App\Models;

答案 2 :(得分:0)

我曾经有过类似的问题。这是我解决的方法 这是一个资源文件,在这里我称为类实例,

$this->user->name

在models文件中,我将其命名为

User::class

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

那是行不通的,因为用户模型位于App根目录中。所以我将实例更改为

\App\User::class

此后有效