symfony: попытка добавить поле из другой модели в бэкэнд-список.Внутреннее соединение - PullRequest
0 голосов
/ 07 декабря 2010

Я создал критерии внутреннего соединения, чтобы показать список элементов в серверной части.

Это мои модели:

  user:
    name:  { type: varchar(255) }
    age:   { type: integer }

  article:
    title:        { type: varchar(255) }
    content:      { type: varchar(255) }
    user_id:      { type: varchar(255) }

и это мой generator.yml (часть) модуля article:

  list:
    peer_method:  getArticles
    display: [title, content, age]

И это метод getArticles ():

public static function getArticles()
{
    $con = Propel::getConnection();
    $sql = "select * from article LEFT JOIN user ON article.user_id = user.id";
    $stmt = $con->prepare($sql);    


    $result = $stmt->execute();
    $articles = self::populateObjects($stmt);

    return $articles;

}

Как видите, я хочу показать столбец, соответствующий полю "возраст", поэтому при попытке отобразить список статей выдается сообщение об ошибке, которое напоминает "Метод Articles :: getAge () не определен" .

Так что я думаю, что я должен создать метод Articles :: getAge (), но .. что я должен написать внутри? Новый критерий, который извлекает объект пользователя, соответствующий значению поля user_id статьи? Или, может, я не прав с другими вещами?

SF 1.4 / Propel

Привет

1020 * Javi *

1 Ответ

0 голосов
/ 07 декабря 2010

Да:

class Articles
{
  public function getAge()
  {
    return $this->getUser()->getAge();
  }
}

или подобный код для извлечения значения на основе вашей связанной модели - я обычно использую Doctrine, но из моей туманной памяти Propel я думаю, что вышеупомянутое должно работать: -)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...