CakePHP 3$this->;型号->;有条件吗?

CakePHP 3$this->;型号->;有条件吗?,cakephp,cakephp-3.0,Cakephp,Cakephp 3.0,我试图修改一个烘焙的“视图”函数,因为我需要检查请求用户是否是所有者。这在CakePHP2.x中曾经非常简单,但在版本3中我遇到了一些麻烦 这是烘焙函数: public function view($id = null) { $invoice = $this->Invoices->get($id, [ 'contain' => [] ]); $this->set('invoice', $invoice); } 这是完美的,但正如

我试图修改一个烘焙的“视图”函数,因为我需要检查请求用户是否是所有者。这在CakePHP2.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"
为什么呢?如何添加该条件?

检查:

如果没有,则在通过主键找到单个记录后返回该记录 找到记录此方法引发异常


我假设表中没有id为4的记录,也没有传递给条件的用户id。检查这一点。

您也可以尝试将find()与first()或firstOrFail()一起使用,因为这样可以让您更好地处理afaik。该死的,您是对的,我正在寻找我没有的东西。那个例外信息误导了我,但完全是我的错。谢谢