Я не нашел в документации, как выбрать вложенные свойства. Мне нужен результат, подобный этому:
{
"data": [
{
"Id": 3,
"Fname": "Fname",
"Lname": "Lname",
"Mname": "Mname",
"UserId": 1549,
"Login": "manager",
"Email": "manager@email.ru",
"Password": null,
"UserRole": [
{
UserRole object
},
{
UserRole object
},
{
UserRole object
}
]
}
],
"totalCount": 1
}
Но мой код
$items = PanelUserQuery::create()
->joinWithUser()
;
$itemsCollection = $items->find();
$totalCount = $items->count();
$itemsArray = $itemsCollection ? $itemsCollection->toArray(null, null, TableMap::TYPE_PHPNAME, true) : [];
var_dump($itemsArray);
, возвращающий этот массив:
{
"data": [
{
"Id": 3,
"Fname": "Fname",
"Lname": "Lname",
"Mname": "Mname",
"UserId": 1549,
"Login": "manager",
"Email": "manager@email.ru",
"Password": null,
"User": {
"Id": 1549,
"Login": "manager",
"Email": "manager@mail.ru",
"Password": null,
"PanelUsers": [
"*RECURSION*"
]
}
}
],
"totalCount": 1
}
Моя схема: Таблица пользователей
<table name="user">
<column name="id" type="integer" required="true" primaryKey="true" autoIncrement="true"/>
<column name="login" type="varchar" size="999"/>
<column name="email" type="varchar" size="999"/>
<column name="password" type="varchar" size="40"/>
</table>
Таблица ролей
<table name="role">
<column name="id" type="integer" required="true" primaryKey="true" autoIncrement="true"/>
<column name="name" type="varchar" size="999" required="true"/>
<column name="guid" type="varchar" size="999" required="true"/>
<unique>
<unique-column name="name"/>
</unique>
<unique>
<unique-column name="guid"/>
</unique>
</table>
Таблица пользовательских ролей
<table name="user_role" isCrossRef="true">
<column name="user_id" type="integer" primaryKey="true"/>
<column name="role_id" type="integer" primaryKey="true"/>
<foreign-key foreignTable="user">
<reference local="user_id" foreign="id"/>
</foreign-key>
<foreign-key foreignTable="role">
<reference local="role_id" foreign="id"/>
</foreign-key>
<unique>
<unique-column name="user_id"/>
<unique-column name="role_id"/>
</unique>
</table>
Таблица PanelUser
<table name="panel_user">
<column name="id" type="integer" required="true" primaryKey="true" autoIncrement="true"/>
<column name="fname" type="varchar" size="999"/>
<column name="lname" type="varchar" size="999"/>
<column name="mname" type="varchar" size="999"/>
<column name="user_id" type="integer" required="true" />
<foreign-key foreignTable="user" onDelete="CASCADE">
<reference local="user_id" foreign="id" />
</foreign-key>
<behavior name="delegate">
<parameter name="to" value="user" />
</behavior>
</table>
Я не понимаю, как получить свойство UserRole и передать егоОбъект PanelUser. Помогите с пониманием методов запроса или напишите какой-нибудь код, пожалуйста