Владимир Бабусенко

Владимир Бабусенко

С нами с 11 ноября 2014; Место в рейтинге пользователей: #204
Владимир Бабусенко
09 июня 2015, 15:40
0
Вы правы, не поспоришь. Может подскажите как реализовать, как пример: отношение объектов user и user_attributes. Как я понимаю, достаточно создать одну схему(объект), указать связь с modUser.

<?xml version="1.0" encoding="UTF-8"?>
<model package="myextuser" baseClass="xPDOObject" platform="mysql" defaultEngine="MyISAM" phpdoc-package="myextuser"
	   version="1.1">

    <object class="Userdata" table="data" extends="xPDOSimpleObject">
        <field key="userdata_id" dbtype="int" precision="11" phptype="integer" null="false" attributes="unsigned"/>
        <field key="anyfield" dbtype="varchar" precision="100" phptype="string" null="true" />

        <aggregate alias="extUser" class="modUser" local="userdata_id" foreign="id" cardinality="one" owner="foreign" />
    </object>

</model>
и прописать
$this->map['modUser']['composites']['Services'] = array(
	'class' => 'Userdata',
	'local' => 'id',
	'foreign' => 'userdata_id',
	'cardinality' => 'one',
	'owner' => 'local',
);


Владимир Бабусенко
09 июня 2015, 14:46
0
что сразу не обратил. Вы пишите что я создал новый объект в моем случае (Userdata), и добавил связь с modUser, а именно
<aggregate alias="extUser" local="userdata_id" foreign="id" cardinality="one" owner="foreign" />
А у modUser не было связи и нет… меня смутило. Как же, я же расширяю объект modUser и прописываю связь. Разве не такой принцип? При генерации модели, разве это связь не должна учитываться?
<object class="extUser" extends="modUser">
        <composite alias="Data" local="id" class="Userdata" foreign="userdata_id" cardinality="one" owner="local" />
    </object>
Владимир Бабусенко
09 июня 2015, 14:20
0
Прописал
<?php

$xpdo_meta_map = array (
  'modUser' => 
  array (
    0 => 'extUser',
  ),
  'xPDOSimpleObject' => 
  array (
    0 => 'Userdata',
  ),
);

$this->map['modUser']['composites']['Data'] = array(
    'class' => 'Userdata',
    'local' => 'id',
    'foreign' => 'userdata_id',
    'cardinality' => 'one',
    'owner' => 'local',
);
прописываю в файле MyExtUser/core/components/myextuser/model/myextuser/metadata.mysql.php
Но при генерации пакета удаляется добавленная связь…