Это хорошая идея использовать модель yii с отношениями, когда у нас есть реляционные запросы, чтобы каждый раз?Использование моделей yii
Например у меня есть эти таблицы:
- пользователя
- Статья
- ArticleVotes
- Категория
пользователя связан со статьей и статьей голосов
статьи и статьи Голос связан
и категория и статьи связаны ...
так теперь, чтобы получить эти данные, я создал функцию, которая будет возвращать мне массив этих табличных данных, которые связаны
function getArticles($limit)
{
$criteria = new CDbCriteria();
$criteria->limit = $limit;
$articles = Article::model()->with('idCategory', 'idUser', 'idArticleVotes')->findAll($criteria);
return array(
'category' => $articles->idCategory, // object of type category
'articles' => $articles, //object of type article
'votes' => $articles->idArticleVotes, //object of type ArticleVotes which has other object of type users
'user' => $articles->idUser, //object of type user
);
}
этот код выше хорошего способа использования yii? особенно если у меня есть много данных для извлечения из базы данных ???
Будет ли медленным выполнение?
Я заметил, что вы возвращаете фактические значения столбца таблицы «Статья», а не «объект типа», как с вашим кодом выше. Вы объявили отношения в своей модели статьи и определили ключи? – Hamad
нет его не столбцы его отношения хорошо, я не копирую и вставляю, я просто написал этот код, я знаю, что он должен был быть idUser0 или idCategory0, как yii, сгенерировать его для вас ... – user2707590
Избегайте загрузки нескольких отношений один-ко-многим в одном запрос. Это приводит к возврату * огромного количества строк. Посмотрите на [этот вопрос] (http://stackoverflow.com/questions/17133519/yii-eager-loading-fatal-error-out-of-memory/) для решения. – DCoder