首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >PhpActiveRecord:创建初始化对象

PhpActiveRecord:创建初始化对象
EN

Stack Overflow用户
提问于 2012-11-12 23:13:38
回答 2查看 356关注 0票数 0

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

代码语言:javascript
复制
$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

我的班级:

代码语言:javascript
复制
class Order extends ActiveRecord\Model{
    static $belongs_to = array( 
        array(
            '_plan',
            'class_name' => 'Plan',
            'foreign_key' => 'plan'
        ),
    );
}

这种关系运作得很好。如果我找到一个带有查找器的Order,我会得到相关的对象_plan

代码语言:javascript
复制
Order::find(1)->_plan // Works!

我做错了什么?

EN

回答 2

Stack Overflow用户

发布于 2012-11-13 02:26:19

问题是ActiveRecord不支持这种行为。你可以看到here

票数 0
EN

Stack Overflow用户

发布于 2012-11-13 15:07:24

这一行

代码语言:javascript
复制
Order->_plan

真的不代表什么。您可以查找对象的属性,例如,$order对象。

这一行表示您正在创建一个对象,然后查找_plan属性。这很好。

代码语言:javascript
复制
 Order::find(1)->_plan // Works!

要对对象执行此操作,应执行以下操作

代码语言:javascript
复制
$order = Order::find(1);
var_dump($order->_plan;) // should work!

现在您可以更改_plan中的内容(如果它在那里),例如

代码语言:javascript
复制
$order->_plan->world = "Hello".

现在您应该记住,您在对象中设置了关系,因此它们就是这样到达的。你不应该创建像这样的对象,我举了个例子,你说think.The做了这样的事情

  • 查找id为%1的订单。
  • 获取其计划。

但是你的不起作用的例子做了其他的事情

  • 查找新订单
  • 将id为1的计划分配给该订单。

我认为最后一部分不是这样工作的,请看@Overflow012发布的this link

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/13346258

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档