CakePHP 3 $this-›Model-›получить с условиями?

Я пытаюсь изменить запеченную функцию просмотра, так как мне нужно проверить, является ли запрашивающий пользователь владельцем. Раньше это было очень просто с CakePHP 2.x, но у меня возникли некоторые проблемы с версией 3.

Это запеченная функция:

public function view($id = null) {
    $invoice = $this->Invoices->get($id, [
        'contain' => []
    ]);

    $this->set('invoice', $invoice);
}

Который отлично работает, но, как я уже сказал, я хотел бы добавить некоторые условия, такие как это

public function view($id = null) {
    $invoice = $this->Invoices->get($id, [
        'contain' => [],
        'conditions' => [
            'user_id' => $this->Auth->user('id')
        ]
    ]);

    $this->set('invoice', $invoice);
}

Проблема в том, что это просто не работает. Все, что я получаю, это

Error: Record "4" not found in table "invoices"

Почему это? Как я могу добавить это условие?


person ToX 82    schedule 22.12.2014    source источник
comment
Вы также можете попробовать использовать find() с first() или firstOrFail(), так как это позволяет вам немного больше обрабатывать afaik.   -  person mark    schedule 22.12.2014


Ответы (1)


Ознакомьтесь с документацией для Table::get():

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

Я предполагаю, что в таблице нет записи с идентификатором 4 И идентификатор пользователя, который вы передаете условиям. Проверь это.

person floriank    schedule 22.12.2014
comment
Черт, ты прав, я искал то, чего у меня не было. Это сообщение об исключении ввело меня в заблуждение, но это была полностью моя вина. Спасибо! - person ToX 82; 22.12.2014