在我的包裹中,我检查用户ID:
//check
if(!$this->checkId($id)) //error
如果失败,我需要抛出一个错误,因为我的包中的方法将无法工作,我需要通知用户。
请注意,这不是一个雄辩的查询,因此我不需要任何查找或失败方法。
我怎样才能在laravel中做到这一点?
答案 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");
}