我正在使用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!
我做错了什么?
答案 0 :(得分:0)
问题是ActiveRecord不支持此行为。您可以看到here
答案 1 :(得分:0)
这一行
Order->_plan
真的没有任何意义。您可以找到对象的属性,例如,$order
对象。
此行表示您正在创建一个对象,然后找到_plan
属性。哪个好。
Order::find(1)->_plan // Works!
要使用对象执行此操作,您应该执行
$order = Order::find(1);
var_dump($order->_plan;) // should work!
现在您可以更改_plan中的内容(如果有),例如
$order->_plan->world = "Hello".
现在您应该记住,您在对象中设置关系,这就是它们的到达方式。你不应该创造像我这样的对象。你说的有用的例子就像
但是你的例子没有用呢
最后一部分不像我想的那样工作,请参见@ Overflow012发布的this link。