我使用的是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
我的班级:
class Order extends ActiveRecord\Model{
static $belongs_to = array(
array(
'_plan',
'class_name' => 'Plan',
'foreign_key' => 'plan'
),
);
}这种关系运作得很好。如果我找到一个带有查找器的Order,我会得到相关的对象_plan
Order::find(1)->_plan // Works!我做错了什么?
发布于 2012-11-13 02:26:19
问题是ActiveRecord不支持这种行为。你可以看到here
发布于 2012-11-13 15:07:24
这一行
Order->_plan真的不代表什么。您可以查找对象的属性,例如,$order对象。
这一行表示您正在创建一个对象,然后查找_plan属性。这很好。
Order::find(1)->_plan // Works!要对对象执行此操作,应执行以下操作
$order = Order::find(1);
var_dump($order->_plan;) // should work!现在您可以更改_plan中的内容(如果它在那里),例如
$order->_plan->world = "Hello".现在您应该记住,您在对象中设置了关系,因此它们就是这样到达的。你不应该创建像这样的对象,我举了个例子,你说think.The做了这样的事情
但是你的不起作用的例子做了其他的事情
我认为最后一部分不是这样工作的,请看@Overflow012发布的this link。
https://stackoverflow.com/questions/13346258
复制相似问题