Список форумов Cake-PHP.ru Cake-PHP.ru
Форум программистов CakePHP
(на сайт)
 
 Watched TopicsWatched Topics   FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 

В одном контроллере загружать данные из многих таблиц

 
Начать новую тему   Ответить на тему    Список форумов Cake-PHP.ru -> Общий
Предыдущая тема :: Следующая тема  
Автор Сообщение
sinoptik

цитировать



Зарегистрирован: 20 Авг 2009 16:29:34
Сообщения: 10

СообщениеДобавлено: 20 Авг 2009 16:37:03    Заголовок сообщения: В одном контроллере загружать данные из многих таблиц Ответить с цитатой

То ли я не разобрался с самой струткурой MVC то ли с принцыпами кайка.
У меня при регистрации пользватель (модель Users)должен выбрать где он живет, у меня есть три таблицы: странны, регионы, города.
Как мне загрузить данные из этих таблиц не связывая их с таблицой user, куда удобнее поместить код выборки из этих таблиц.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
michas

цитировать



Зарегистрирован: 28 Янв 2008 11:28:31
Сообщения: 123

СообщениеДобавлено: 20 Авг 2009 19:25:05    Заголовок сообщения: Ответить с цитатой

почитайте про ClassRegistry или requestAction
_________________
Все самое интересное в реальном времени - xmpp:cakephp@conference.jabber.ru
Вернуться к началу
Посмотреть профиль Отправить личное сообщение Посетить сайт автора
mayar

цитировать



Зарегистрирован: 03 Апр 2009 15:52:14
Сообщения: 24

СообщениеДобавлено: 21 Авг 2009 11:07:01    Заголовок сообщения: Ответить с цитатой

sinoptik, как связаны твои 4 таблицы друг с другом?

Наверное вот так:
Страна hasMany Регион
Регион hasMany Город
User hasOne Город

И где ты хочешь использовать эту информацию?

Наверное при просмотре профиля пользователя или чего-то типа этого... Тогда в контроллере users_controller

function view() {
...
// Вся инфа по юзеру
$data = $this->User->find('all', array(
'recursive' = 2
))
...
}

Вот как-то так наверное
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Гость

цитировать






СообщениеДобавлено: 21 Авг 2009 14:37:37    Заголовок сообщения: Ответить с цитатой Изменить/удалить это сообщение

Мне страны, регионы и города, нужны во многих местах системы, не только для юзера. И мне не очень хочеться к моделию User ассоциировать дополнительные таблицы, хочу вынести это как-то отдельно но пока еще не решил как это сделаю.
Вернуться к началу
sinoptik

цитировать



Зарегистрирован: 20 Авг 2009 16:29:34
Сообщения: 10

СообщениеДобавлено: 21 Авг 2009 14:38:04    Заголовок сообщения: Ответить с цитатой

Мне страны, регионы и города, нужны во многих местах системы, не только для юзера. И мне не очень хочеться к моделию User ассоциировать дополнительные таблицы, хочу вынести это как-то отдельно но пока еще не решил как это сделаю.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
mayar

цитировать



Зарегистрирован: 03 Апр 2009 15:52:14
Сообщения: 24

СообщениеДобавлено: 21 Авг 2009 15:46:17    Заголовок сообщения: Ответить с цитатой

Что-то я тогда задачу не понял... Объясните смысл.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Ivanhoe

цитировать



Зарегистрирован: 02 Сен 2009 12:32:00
Сообщения: 1

СообщениеДобавлено: 02 Сен 2009 12:47:52    Заголовок сообщения: Ответить с цитатой

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

Достаточно указать контроллеру, с какими моделями (таблицами) он будет работать.
Делается это через свойство $uses.

Например так:

Код:
class UsersController extends AppControler
{
      var $uses = array('User','Country', 'Region', 'City');

      public function someAction()
      {

                $this->set('users',$this->User->find());
                $this->set('countries',$this->Country->find());
                . . . . . . . . . . . . . . . . .
                $this->set('towns',$this->City->find());

                // либо использовать как-то еще, по своему усмотрению

       }

}
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
sinoptik

цитировать



Зарегистрирован: 20 Авг 2009 16:29:34
Сообщения: 10

СообщениеДобавлено: 02 Сен 2009 18:39:29    Заголовок сообщения: Ответить с цитатой

Большое спасибо, разобрался.
Основное мое желание было не цеплять к итак разросшемуся котроллеру Users еще три таблицы, по этому я создал плагин Location и вынес в него все что связанно с адресом и.т.д. запросы к нему делаю через requestAction, хотя в сети пишут, что это ресурсоемкий способ. С ClassRegistry я еще не успел разобраться.
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Имя
Сообщение

Смайлики
Very Happy Smile Sad Surprised
Shocked Confused Cool Laughing
Mad Razz Embarassed Crying or Very sad
Evil or Very Mad Twisted Evil Rolling Eyes Wink
Exclamation Question Idea Arrow
Дополнительные смайлики

 
Показать сообщения:   
Начать новую тему   Ответить на тему    Список форумов Cake-PHP.ru -> Общий Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы можете начинать темы
Вы можете отвечать на сообщения
Вы можете редактировать свои сообщения
Вы можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2005 phpBB Group
Русская поддержка phpBB

Рейтинг@Mail.ru