2016-04-26 28 views
1

カスタムパラメータを使用してカスタム例外を作成しようとしています。私はここで何か間違っているように感じる。基本的に私はLaravelの例外処理ファイルで例外を処理したいと思いますが、例外を発生させた人のようなものを知るために例外がある余分なデータが必要です。これは私がこれまでに...ここLaravel 5.1カスタム例外のカスタムパラメータ

<?php 

namespace App\Exceptions; 

use Exception; 

class ApiException extends \Exception 
{ 
    public $userId; 

    public function __construct($userId, $message, $code, Exception $previous) 
    { 
     parent::__construct($message, $code, $previous); 
     $this->userId = $userId; 
    } 

} 

アイデアが、私はそれを後でアクセスできるように例外にはuserIdを渡すためだったものです。しかし、私は問題を抱えています。この場合、私は "$ previous"変数として渡すべきものはわかりません。

throw new ApiException($user->id, 'im testing', 200, $previous); 

何か助けていただければ幸いです。

答えて

2

例外

前の変数にこのdocumentationを参照してくださいは、例外チェーンに使用するとNULLのデフォルト値を持っています。拡張機能にこれを追加することができます。

<?php 

namespace App\Exceptions; 

use Exception; 

class ApiException extends \Exception 
{ 
    public $userId; 

    public function __construct($userId, $message, $code, Exception $previous = NULL) 
    { 
     parent::__construct($message, $code, $previous); 
     $this->userId = $userId; 
    } 

} 

あなたは、例外チェーンをサポートし続けることができますこの方法では、あなたが将来的にそれを必要とするが、それににApiExceptionがスローされるたびに要求すべきではありません。