Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/symfony/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php Symfony映射在ORM存储类中继承的属性_Php_Symfony_Orm_Doctrine_Payum - Fatal编程技术网

Php Symfony映射在ORM存储类中继承的属性

Php Symfony映射在ORM存储类中继承的属性,php,symfony,orm,doctrine,payum,Php,Symfony,Orm,Doctrine,Payum,我扩展了一个定义了一些属性的类 我必须将继承的属性存储在数据库中,以映射生成的实体 这个的语法是什么样的 我扩展了Payum支付模型类“PaymentDetails”,它本身扩展了如下所示的类“Payment”: /** * Class Payment * * Lets you create, process and manage payments. * * @package PayPal\Api * * @property string id * @property strin

我扩展了一个定义了一些属性的类

我必须将继承的属性存储在数据库中,以映射生成的实体

这个的语法是什么样的

我扩展了Payum支付模型类“PaymentDetails”,它本身扩展了如下所示的类“Payment”:

/**
 * Class Payment
 *
 * Lets you create, process and manage payments.
 *
 * @package PayPal\Api
 *
 * @property string id
 * @property string intent
 * @property \PayPal\Api\Payer payer
 * @property \PayPal\Api\Transaction[] transactions
 * @property string state
 * @property string experience_profile_id
 * @property string note_to_payer
 * @property \PayPal\Api\Payee $payee
 * @property \PayPal\Api\RedirectUrls redirect_urls
 * @property string failure_reason
 * @property string create_time
 * @property string update_time
 * @property \PayPal\Api\Links[] links
 */
class Payment extends PayPalResourceModel
{
    // ...
}
“PaymentDetails”类为:

我自己的班级看起来像这样:

/**
 * @ORM\Table
 * @ORM\Entity
 */
class PaymentPaypalPlus extends PaymentDetails
{
    /**
     * @ORM\Column(name="idPpp", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="IDENTITY")
     *
     * @var integer $idPpp;
     */
    protected $id;
}

我需要让类“PaymentPaypalPlus”作为Payum的有效存储类工作,这意味着我必须将属性从基类映射到DB(使用ORM)。至少我认为我应该这样做。如果这不合理,请让我知道:-)

它认为你正在寻找的最接近的东西是类似或的东西

如果属性受到保护,您还可以在带有注释的子类中重新定义它们-但是这会有点违背继承的目的,除非有许多函数/等可以保持原样


实际继承类似,甚至也可以,但您必须修改供应商类。

谢谢!这看起来很有希望。我正在尝试php映射方式。然而,通常我调用
原则:schema:update--force
来更新我的数据库结构。当我使用
StaticPHPDriver
时,我将如何做到这一点?你能谈谈这个方法本身吗?将此属性映射为将基类用作存储类有意义吗?或者基类存在的预期原因是其他原因吗@詹妮·范德梅尔
/**
 * @ORM\Table
 * @ORM\Entity
 */
class PaymentPaypalPlus extends PaymentDetails
{
    /**
     * @ORM\Column(name="idPpp", type="integer")
     * @ORM\Id
     * @ORM\GeneratedValue(strategy="IDENTITY")
     *
     * @var integer $idPpp;
     */
    protected $id;
}