2012-11-12 65 views
0

我正在使用php activerecord。我需要初始化Order對象,然後設置相關的對象如下面顯示PhpActiveRecord:創建初始化對象

$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

'class Orden!= class Order' - 我希望這是一個錯誤,而不是你的代碼? – ManseUK

+0

我的錯誤。我翻譯了班級的名字,我忘了那一行。 –

+0

可能只是試試這個:''_plan'=>'','? – StasGrin

回答

0

問題是ActiveRecord不支持這種行爲。你可以看到here

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". 

現在你應該記住你在你的對象中設置了關係,所以這就是他們到達的方式。你不應該這樣創建的對象我think.The例如,你說的作品確實像

  • 找到ID爲順序1.
  • 得到它的計劃。

但是你的例子不工作時別人

  • 東西找到一個新的秩序
  • ID爲1到順序分配計劃。

最後一部分不能像我認爲的那樣工作,請參閱@ Overflow012發佈的this link

+0

Line'Order - > _ plan'是錯誤的,應該是'$ order - > _ plan',正如你所說的,但是無論如何都不行。 –