gpt4 book ai didi

symfony - FOSUserBundle 和 FR3DLdapBundle 缺少数据库列

转载 作者:行者123 更新时间:2023-12-02 13:47:37 27 4
gpt4 key购买 nike

  • 我按照 FOSUserBundle 文档 ( documentation ) 和 FR3DLdapBundle ( documentation ) 中的说明进行操作
    • FOSUserBundle 需要扩展 BaseUser 类,而 FR3DLdapBundle 需要 User 类来实现 LdapUserInterface 接口(interface)
    • 就我而言,这会产生这样的类:

use FOS\UserBundle\Model\User as BaseUser;
use Doctrine\ORM\Mapping as ORM;
use FR3D\LdapBundle\Model\LdapUserInterface;

/**
* @ORM\Entity
* @ORM\Table(name="fos_user")
*/
class User extends BaseUser implements LdapUserInterface
{

/**
* @ORM\Id
* @ORM\Column(type="integer")
* @ORM\GeneratedValue(strategy="AUTO")
*/
protected $id;

private $dn;

/**
* the constructor
*/
public function __construct() {
parent::__construct();
// your own logic
}

/**
* {@inheritDoc}
*/
public function getDn() {
return $this->dn;
}

/**
* {@inheritDoc}
*/
public function setDn($dn) {
$this->dn = $dn;
}

}
  • 如果我通过 php app/console Doctrine:schema:update --em=someEm 更新我的架构 Doctrine 会插入新表。但是它只插入 id 列,而不插入继承的列
  • 我不知道这是 FOSUserBundle 错误还是 FR3DLdapBundle 错误
  • 如果我完全删除 FR3DLdapBundle 部分,它也不起作用
  • 因此我认为这是 FOSUserBundle 中的某种错误
  • 有人有想法吗?

提前非常感谢!

最佳答案

FOSUserBundle 目前正处于过渡状态,因此这在一定程度上取决于您所拥有的版本。

您可能需要:

use FOS\UserBundle\Entity\User as BaseUser;  // Note Entity instead of Model

获取基本属性。他们正在将事物转移到模型,这解释了为什么您可能在文档中看到模型\用户。但尚未发布稳定版本。

您可以尝试将composer.json更改为:“friendsofsymfony/user-bundle”:“dev-master”,然后进行更新。或者,如果您已经在使用 dev-master,则只需进行更新即可。

之后模型库应该可以工作。但是,您的一些其他代码可能会停止工作。

现在一切都非常不稳定。

当然,您还必须正确设置您的学说映射:

           mappings:
FOSUserBundle: ~
MyBundle: ~

但我假设您有这个,因为您在尝试添加 Ldap 之前首先让 FOSUserBundle 工作。你做对了吗?

关于symfony - FOSUserBundle 和 FR3DLdapBundle 缺少数据库列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18016935/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com