php - Yii2 未知模型映射键
问题描述
我正在扩展yii2-usuario的 registrationForm 模型,并覆盖该rules()
函数。
我的模型看起来像这样
namespace app\models\user\Form;
use Da\User\Form\RegistrationForm as BaseForm;
class RegistrationForm extends BaseForm
{
public $captcha;
public $firstname;
public $lastname;
public $password_repeat;
public function rules()
{
/** @var User $user */
$user = $this->getClassMap()->get(User::class);
return [
// username rules
'usernameLength' => ['username', 'string', 'min' => 3, 'max' => 255],
'usernameTrim' => ['username', 'filter', 'filter' => 'trim'],
'usernamePattern' => ['username', 'match', 'pattern' => '/^[-a-zA-Z0-9_\.@]+$/'],
//'usernameRequired' => ['username', 'required'],
'usernameUnique' => [
'username',
'unique',
'targetClass' => $user,
'message' => Yii::t('usuario', 'This username has already been taken'),
],
...
...
}
}
但我收到了这个错误
Unknown model map key: app\models\user\Form\User
在这条线上$user = $this->getClassMap()->get(User::class);
不知道如何解决这个问题。user.php 模型在正确的目录中 app\models\user\Form\User.php
更新:
在我的 main.php
'modules' => [
'user' => [
'class' => Da\User\Module::class,
'enableEmailConfirmation' => true,
'classMap' => [
'RecoveryForm' => 'app\models\user\Form\RecoveryForm',
'RegistrationForm' => 'app\models\user\Form\RegistrationForm',
'ResendForm' => 'app\models\user\Form\ResendForm',
'User' => app\models\user\Model\User::class
],
'viewPath' => '@app/views/user',
'controllerMap' => [
'registration' => [
'class' => app\controllers\user\RegistrationController::class, //\Da\User\Controller\RegistrationController::class,
'on ' . \Da\User\Event\FormEvent::EVENT_AFTER_REGISTER => function (\Da\User\Event\FormEvent $event) {
\Yii::$app->session->setFlash('info', Yii::t('usuario', 'A message has been sent to your email address. It contains a confirmation link that you must click to complete registration.'));
\Yii::$app->controller->redirect(['/user/security/login']);
},
'on ' . \Da\User\Event\FormEvent::EVENT_AFTER_RESEND => function (\Da\User\Event\FormEvent $event) {
\Yii::$app->session->setFlash('info', Yii::t('usuario', 'A message has been sent to your email address. It contains a confirmation link that you must click to complete registration.'));
\Yii::$app->controller->redirect(['/user/security/login']);
},
],
],
解决方案
推荐阅读
- ios - 平移 UIViewController 使固定到安全区域的东西跳转到超级视图
- javascript - 状态克隆过早更新
- c# - RGB 16 位精灵(C# 按位)
- ios - UIViewPropertyAnimator 开头有短动画片段
- javascript - 向后的图像滑块或轮播不起作用
- scala - Scala中泛型类型之间的比较
- javascript - 我试图让我的时间从 javascript 显示并继续计数(即 2:30:45 然后 2:30:46),我很难在这里'我当前的代码
- c++ - linter 设置以确保数字参数具有明确的名称?
- javascript - React Select 值未在状态更改时重置
- object-detection - YOLOv3生成training.txt文件