Каков наилучший способ сделать маршрутизацию от 2+ моделей в CakePHP? - PullRequest
0 голосов
/ 09 сентября 2010

Я искал пару часов для решения этой задачи (что, как я знаю, довольно элементарно), но я не могу найти никакой документации ...

У меня есть три модели - обзоры, пользователи и книги - и я проектирую контроллер обзора и добавляю действие для этого контроллера.У меня уже есть user_id, извлеченный из сеанса и используемый для заполнения обзора, который будет «написан этим пользователем».Однако, какой лучший способ добавить в рецензируемую книгу?Кроме того, есть ли способ заполнить страницу «Создать» информацией о книге из модели книги?

Я думаю, что URL будет иметь вид / reviews / 1 / format, где 1 - это book_id, ноимея create ($ id = null), но как мне перевести это в команду чтения и интегрировать ее в переменную данных?

Любая помощь будет принята с благодарностью!

РЕДАКТИРОВАТЬ: Этокак выглядит мой контроллер сейчас:

    function create() {
    if($this->Review->create($this->data) && $this->Review->validates()) {
        $this->data['Review']['user_id'] = $this->Session->read('Auth.User.id');
        $this->Review->save($this->data);
        $this->redirect(array('action' => 'index'));
    } else {
        $errors = $this->Review->invalidFields();
    }
}

1 Ответ

3 голосов
/ 09 сентября 2010

Похоже, вы пытаетесь добиться чего-то, что Cake делает по умолчанию. Если у вас правильно настроены ассоциации моделей, при создании рецензии на книгу вы должны иметь информацию о книге уже в $this->data['Book']

Посмотрите на ваши модели и убедитесь, что они связаны друг с другом, используя правильные отношения. http://book.cakephp.org/view/1039/Associations-Linking-Models-Together

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

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