0

テーブルに参加するときに Codeigniter Datamapper に問題があります。私は2つのテーブルを持っています:

Purchase
purchase_id, ref ...

Stock
stock_id, purchase_ref...

has_many リレーションを作成しました:

買うために:

 public $has_many = array(
            'stock' => array(
                'join_table' => 'stocks',
                'other_field' => 'purchase_ref',
                'cascade_delete' => TRUE
            )
    );

在庫の場合:

public $has_one = array(
            'purchase'=>array(
                'join_other_as' => 'purchase_ref',
                'join_table' => 'purchases',
                'cascade_delete' => FALSE
            )
    );

しかし、datamapper は、結合したい列に _id を追加しているようで、 purchase_ref_id になり、SQL ステートメントは次のようになります。

...LEFT OUTER JOIN "stocks" stocks ON "purchases"."id" = "stocks"."purchase_ref_id"...

データマッパーでテーブルを結合するときに _id を追加しないようにするにはどうすればよいですか? ありがとう。

4

1 に答える 1

0

これはハード コードされた動作であり (たとえば、ここでは、コード内の多くの場所で)、現在のバージョンで変更することはできません。ライブラリのコードにパッチを当てるか、db スキーマを変更する必要があると思います。

于 2013-07-24T14:38:02.987 に答える