Laravel - 检查是否在模型中找到了Eloquent对象

时间:2015-07-25 07:36:36

标签: laravel eloquent

在我的控制器中,我希望有这个:

class TodoController extends Controller {

    public function getDone($todoId)
    {
        Todo::find($todoId)->markAsDone();
    }

}

模特我:

class Todo extends Eloquent {

    public function markAsDone()
    {
        if (???) {
            $this->is_done = 1;
            $this->save();
        }
    }

}

如何检查模型是否已找到且存在于$this中?

1 个答案:

答案 0 :(得分:1)

在您的情况下,检查ToDo对象的存在只能在控制器中完成。因为在您当前的代码Todo::find($todoId)->markAsDone();中,如果$todoId无效,您将会遇到大错误trying to get property of non-object。所以最好这样做。

class TodoController extends Controller {

public function getDone($todoId)
{
    $todo = Todo::find($todoId);
    if ($todo) {
       $todo->markAsDone();
    }
}

}

在你的模特中

class Todo extends Eloquent {

    public function markAsDone()
    {
         $this->is_done = 1;
         $this->save();
    }

}