Мне просто интересно, есть ли быстрый / эффективный способ сделать это в Cake, а не писать саму логику кода (хотя это не будет сложно, это может быть немного нечисто).
Предположим, у вас есть нормальная таблица users
, а затем таблица posts
. Каждый пользователь может иметь много сообщений и ссылки user_id
in posts
на id
in users
.
В учебнике показано редактирование записи следующим образом:
function edit($id = null) {
$this->Post->id = $id;
if (empty($this->data)) {
$this->data = $this->Post->read();
} else {
if ($this->Post->save($this->data)) {
$this->Session->setFlash('Your post has been updated.');
$this->redirect(array('action' => 'index'));
}
}
}
Каков наилучший способ проверить это, по сути, user.id
= post.user_id
без выполнения проверки if, а затем перенаправления. Я действительно хочу «связать» / «ограничить» страницу так, чтобы $id
, переданный edit()
, был таким, что они создали книгу (или, по крайней мере, являются текущим «владельцем») в posts
таблица.
Если говорить более кратко, мой вопрос: какова версия торта:
$this->Post->read();
if ($this->Post->data['Post']['user_id'] != $my_current_user_id){
// Redirect
}
(псевдокод, но я надеюсь, что это дает идею). Я просмотрел документацию, но, похоже, не вижу этого (для меня было бы просто «иметь смысл», что он существует, учитывая, насколько удивительны остальные библиотеки в том, что они делают для вас с минимальной работой).