2017-10-24 7 views
0

私はLaravel 5.5を使用していて、アプリケーションで新しいeloquent resourceをテストしていますが、データがないか何か問題が発生した場合は、私はこのリソースからエラーを返すことができますか?私のデータを返すLaravel Eloquent Resourceをエラーに使用する

例:

public function show ($id) 
{ 
    return new ProductResource(Product::find($id)); 
} 

答えて

0

は、整合性をチェックするためにifを追加し、それがカスタム例外

public function show($id) 
{ 
    $product = Product::find($id); 

    if (! $product->isValidResource()) { 
     throw new InvalidResourceException($product); 
    } 

    return new ProductResource($product); 
} 

有効な投げないならば、あなたはApp\Exceptionsに例外ファイルを作成することができますし、 、メソッドrenderを宣言すると、表示するエラーをカスタマイズできます

public function render() 
{ 
    return response()->json([ 
     'result' => false, 
     'message' => 'Invalid Resource: '.get_class($this->product) .' identified by '.$this->product->id 
    ]); 
} 
+0

この '' 'isValidResource()' 'はカスタムメソッドですか? –

+0

はい、属性の確認や、必要なものを確認する場所です – Lloople

+0

例外を使用するためにクラスを拡張する必要がありますか? –