0

私はphpアクティブレコードを使用しています。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!

私は何を間違っていますか?

4

2 に答える 2

0

問題は、ActiveRecord がこの動作をサポートしていないことです。ここで見ることができます

于 2012-11-12T18:26:19.263 に答える
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".

ここで、オブジェクトに関係を設定したことを覚えておく必要があります。私が思うに、このようなオブジェクトを作成することは想定されていません.あなたが言う例は、

  • ID 1 の注文を検索します。
  • その計画を取得します。

しかし、うまくいかないあなたの例は何か他のことをします

  • 新しい秩序を見つける
  • ID 1 のプランをそのオーダーに割り当てます。

@Overflow012 が投稿したこのリンクを参照してください。

于 2012-11-13T07:07:24.100 に答える