結合フィールドを含むCodeIgniterDatamapperORMクエリの作成についてサポートが必要です。私は商人のテーブルとベンダーのテーブルを持っています。彼らは多対1の関係を持っています。つまり、多くの商人は単一のベンダーの一部です。
したがって、DatamapperORM規則に従った私の日付ベーステーブルは次のとおりです。
商人
ベンダー
Merchants_vendors
さらに、merchants_vendorsテーブルには、結合フィールド「role」と「admin」があります。明らかに、このデータは結合テーブルに配置する必要があります。Merchantsテーブルに配置した場合、ベンダーごとに役割と管理者を定義することはできません。
最後に、マーチャントは1対1の関係でユーザーと関係があります。マーチャントはユーザーの単なる拡張と考えてください。
このデータ構造に従うデータからPHP配列を作成しようとしていますが、ロールフィールドと管理フィールドが正しく入力されていないようです。簡単にするために、冗長な列を削除しました。
[vendor] => Array
(
[id] => 1
[name] => Vendor1
[users] => Array
(
[0] => Array
(
[id] => 277
[username] => merchant1
[firstname] => Merchant1
[merchant] => Array
(
[id] => 1
[user_id] => 277
[role] => Sales
[admin] => 0
)
)
[1] => Array
(
[id] => 282
[username] => merchant2
[firstname] => Merchant2
[merchant] => Array
(
[id] => 2
[user_id] => 282
[role] => Software
[admin] => 1
)
)
)
)
これが私が使用しているコードです-ベンダーIDを知っていると仮定します:
$v = new Vendor($id);
if($v->exists())
{
$d['vendor'] = $v->to_array();
$m = new Merchant();
$m->where_related_vendor('id', $v->id)->get();
if($m->exists())
{
foreach($m as $mK => $mV)
{
$u = new User();
$u->where_related_merchant('id', $mV->id)->get();
$d['vendor']['users'][$mK] = $u->to_array();
$d['vendor']['users'][$mK]['merchant'] = $mV->to_array();
}
}
}
$this->load->view('myview', $d);
これにより、ロールと管理者がいない上記のPHPデータ構造に到達できます。
私はそのinclude_join_fields()
機能をよく知っていますが、それを機能させることができないようです。具体的には、$m->vendor->include_join_fields();
Thenを試してから役割/管理フィールドにアクセスしようとしまし$mV->vendor->join_role
た$mV->vendor->join_admin
が、それは機能しません。
あなたの助けは大歓迎です!