Как мне подключиться или обменяться информацией между контроллерами в cakephp - PullRequest
0 голосов
/ 09 февраля 2012

Я немного озадачен тем, как я могу обмениваться информацией между контроллерами в CakePHP 2.0.Это в основном то, что я пытаюсь сделать.

У меня есть таблица базы данных изображений, которая содержит идентификатор, имя, путь и т. Д. Таблица пользователей, которая содержит пользователя, пароль и т. Д.

У меня есть модель Image.php, контроллер - ImagesController.php и просмотры - View / Images / add.ctp View / Images / index.ctp View / Images / view.ctp

У меня есть модельUser.php, контроллер - UsersController.php и просмотры - View / Users / index.ctp, View / Users / login.ctp

My View / Images / index.ctp перечисляет все изображениякоторые были загружены, View / Images / add.ctp позволяет кому-либо загружать изображение

View / Users / login.ctp позволяет пользователю войти в систему и, если это правильная информация, отправляет пользователя в View / Users /index.ctp

1) Как сделать View / Images / add.ctp доступным только для пользователей, которые вошли в систему. Должен ли я перенаправить их в View / Images / add.ctp с информацией о сеансе пользователя и проверитьесли данные установлены или как это работает в CakePHP?

2) Если я обновляю таблицу изображений из изображений, используя $ this-> Image-> saveAll ($ data_s).Как я могу сохранить некоторые данные в таблицу пользователей?Я посмотрел на документацию, но все еще немного сбит с толку.

Ответы [ 2 ]

2 голосов
/ 09 февраля 2012
  1. Используйте AuthComponent для обработки аутентификации , что действительно то, что вам нужно.
  2. Если две модели связаны, вы можете получить доступ к одной через другую. Например. Если Image принадлежит Пользователю, модель User доступна из модели Image через простой $this->Image->User. В противном случае вы можете включить любую модель в любой контроллер, используя атрибут $uses или временно, используя метод loadModel .
0 голосов
/ 09 февраля 2012
  1. Вы должны выполнить эту проверку в контроллере - если вы не вошли в систему, не позволяйте коду упасть в ветку, где он будет использовать это представление.Вы не должны помещать такую ​​логику в представление.

  2. Call $this->User->save($some_data), где $this->User имеет загруженную пользовательскую модель, а $some_data - суженное подмножестводанных, которые вы хотите вставить в таблицу пользователей.

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