繁体   English   中英

PhpActiveRecord:创建初始化对象

[英]PhpActiveRecord: Creating initialize object

我正在使用php activerecord 我需要初始化一个Order对象,然后设置相关对象,如下所示

$order = new Order();
Order->_plan = Plan::find(1);

Undefined property: Order->_plan in /var/www/ordenes-web/core/libs/php-activerecord/lib/Model.php on line 428得到错误Undefined property: Order->_plan in /var/www/ordenes-web/core/libs/php-activerecord/lib/Model.php on line 428

我的课:

class Order extends ActiveRecord\Model{
    static $belongs_to = array( 
        array(
            '_plan',
            'class_name' => 'Plan',
            'foreign_key' => 'plan'
        ),
    );
}

关系很好。 如果我在查找器中找到Order_plan得到相关对象_plan

Order::find(1)->_plan // Works!

我究竟做错了什么?

问题是ActiveRecord不支持此行为。 你可以在这里看到

这条线

Order->_plan

真的没什么意思。 您可以找到对象的属性,例如$order对象。

这行表示您正在制作一个对象,然后找到_plan属性。 哪个好

 Order::find(1)->_plan // Works!

为此,您应该

$order = Order::find(1);
var_dump($order->_plan;) // should work!

现在,您可以更改_plan中的内容(如果有的话),例如

$order->_plan->world = "Hello".

现在您应该记住,已在对象中设置了关系,因此可以达到它们。 我想你不应该创建这样的对象。

  • 查找ID为1的订单。
  • 得到它的计划。

但是您的示例不起作用会做其他事情

  • 寻找新订单
  • 将编号为1的计划分配给该订单。

最后一部分不像我想的那样工作,请参阅@ Overflow012发布的此链接

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM