Ограничить поля в результате запроса Propel v2 с левым соединением

я использую Propel ORM v2 извлекать записи из таблицы, которая связана с записями другой таблицы с использованием внешнего ключа. Я хотел бы вернуть только определенные поля из родительской таблицы и дочерней таблицы.

Каков наилучший способ сделать это?

Моя структура таблицы выглядит так:

Table: User
- Id
- Name
- Age
- MaritalStatus
Table: Profile
- UserId (FK->User.Id)
- Street
- City
- State
- Country
- TelephoneNumber

Я пробовал следующее, но запрос не возвращает желаемый User возражать с детьми Profile объекты и только выбранные поля Id, Name для User объект и TelephoneNumber для Profile дочерние объекты:

\UserQuery()::create
->select(array('Id', 'Name', 'Profile.Telephonenumber'))
->leftJoinWithProfile()
->find()
->toArray();

Любой совет с благодарностью

0

Решение

просто быстро осмотрел пропел.

  1. Этот выбор возвращает то, о чем вы просили («Id», «Name», «Profile.Telephonenumber»).

    \UserQuery::create()
    ->join('Profile')
    ->select(array('Id', 'Name', 'Profile.Telephonenumber'))
    ->find()
    ->toArray();

    // возвращает массив со значениями для «Id», «Name», «Profile.Telephonenumber»

  2. Если вы хотите, чтобы все записи таблицы ‘User’ и записи из ‘Profile’ были дочерним массивом, попробуйте это:

    \UserQuery::create()
    ->join('User.Profile')
    ->find()
    ->toArray();

    // возвращает массив со всеми записями из таблицы «Пользователь» и дочерний массив с записями из таблицы «Профиль».

Извините, если я допустил какие-либо ошибки, это мой первый ответ на Stackoverflow.
Хорошего дня,
M.I.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]