在Laravel中抛出一个错误(不是雄辩的)

时间:2014-08-21 09:02:04

标签: laravel laravel-4

在我的包裹中,我检查用户ID:

//check
if(!$this->checkId($id)) //error

如果失败,我需要抛出一个错误,因为我的包中的方法将无法工作,我需要通知用户。

请注意,这不是一个雄辩的查询,因此我不需要任何查找或失败方法。

我怎样才能在laravel中做到这一点?

2 个答案:

答案 0 :(得分:2)

我同意之前的回答,但我会从checkId()方法抛出异常 - 因为检查通过或失败(并抛出异常)。

class CheckIdException extends Exception
{
}

class WhateverClass
{
    public function checkId($id)
    {
        // do the check
        $passes = ....

        if (! $passes) {
            throw new CheckIdException('CheckId() failed');
        }

        return true;
    }
}


// somewhere in the app code
try {
    $this->checkId($id);
} catch (CheckIdException $e) {
    return Response::json(['error' => 'checkId', 'message' => 'meaningul error description']);
} catch (Exception $e) {
    return Response::json(['error' => 'UnknownError', 'message' => $e->getMessage()]);
}

// yay, ID check passes! Continue!

答案 1 :(得分:0)

...所以只是抛出一个错误?

if(!$this->checkId($id)) //error
{ 
    App::abort(500, 'CheckId() failed');
}

if(!$this->checkId($id)) //error
{ 
    throw new Exception("CheckId() failed");
}