Slim 3 + Doctrine 2:Class' User'不存在,MappingException

时间:2018-04-20 08:23:37

标签: php database doctrine-orm orm slim-3

我使用Slim 3和Doctrine 2。

我无法通过其他stackoverflow问题解决这个问题,在goolge中搜索也没有帮助......

我尝试在注册时保存用户,但

  

超薄应用程序错误应用程序无法运行,因为   以下错误:详情类型:   Doctrine \ Common \ Persistence \ Mapping \ MappingException消息:类   '用户'不存在文件:   C:\瓦帕\ WWW \ slimproject \厂商\教义\共同\ lib中\学说\共同\持久性\映射\ MappingException.php   行:96

我的用户类

!!!当我删除行"命名空间App \ Models;"它工作正常,我认为这是一个问题..

<?php

namespace App\Models;

/**
 * @Entity
 * @Table(name="users")
 */
class User
{
/**
 * @id
 * @Column(type="integer")
 * @GeneratedValue(strategy="AUTO")
 *
 */
public $id; ect

/**
 * @name
 * @Column(type="string")
 */
public $name; ect...

AuthController:

use App\Models\User;
...

$user = new User();
    $user->setEmail($request->getParam('email'));
    $user->setName($request->getParam('name'));
    $user->setPassword(password_hash($request->getParam('password'), PASSWORD_DEFAULT) );
    $user->created_at();
    $user->updated_at();

    $db = new Doctrine();
    $db->em->persist($user);
    $db->em->flush();

my composer.json

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

学说配置

$paths = array('/app/Models/');
    $isDevMode = false;
    $config = Setup::createAnnotationMetadataConfiguration($paths, $isDevMode);

    $connectionOptions = array(
        'driver'   => 'pdo_mysql',
        'host'     => 'localhost',
        'dbname'   => 'monday',
        'user'     => 'root',
        'password' => '',
    );

    $this->em = EntityManager::create($connectionOptions, $config);

文件夹结构(WAMP)

www/
---slimproject/
--------------app/
-----------------Controllers/
----------------------------Auth/AuthController.php
-----------------Models/User.php
--------------public/
--------------composer.json

我希望有人帮忙解决这个问题。

1 个答案:

答案 0 :(得分:1)

问题解决了!

当我使用方法doctrine getRepository()时,param是('User'),我改为(UserEntity :: class)预先添加使用App \ Models \ User作为UserEntity;