Условие в функции read() CakePHP
В функции CakePHP edit
Я использую функцию read()
как:
$this->data = $this->Article->read(null, $id);
Он объединяет все поля $id
. Теперь то, что я пытаюсь настроить, чтобы дать еще одно условие в read()
, чтобы получать статьи, только если пользователь вошел в систему, связано с этим.
Например:
$this->Article->user_id = $user_id;
$this->Article->id = $id;
$this->Article->read();
И, очевидно, он хочет работать как read()
приносит данные только w.r.t. $id
(первичный ключ).
Мой вопрос:
- Есть ли способ настроить функцию чтения с условием больше, чем
$id
? Потому что ему просто нужно будет добавить одну строку во все мои контроллеры, если это сработает? - Или мне нужно использовать длинный код функции find(), чтобы получить единственный вариант?
Любое лучшее решение будет заметным.
2 answers
Если вам действительно необходимо это сделать, вы можете использовать методы ООП, чтобы переопределить способ работы основного метода.
Просто скопируйте Model::read()
метод для вашего класса AppModel
и внесите необходимые изменения.
Вы должны использовать find()
, если хотите выполнить поиск условно. Другой вариант - считывать данные только в том случае, если выполняются условия:
$this->Article->id = $id;
if( $this->Article->field( 'user_id' ) == $user_id ) {
$this->Article->read();
}
(read()
заполняет $this->data
автоматически.)