我使用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
我希望有人帮忙解决这个问题。
答案 0 :(得分:1)
问题解决了!
当我使用方法doctrine getRepository()时,param是('User'),我改为(UserEntity :: class)预先添加使用App \ Models \ User作为UserEntity;