2017-03-13 72 views
0

在laravel我們可以一起使用with()redirect(),像Laravel添加方法與供應商類

return redirect('home')->with(['message' => 'Some message'); 

我想創建像withError()withSuccess()其他一些功能。

如何以及在哪裏創建?

回答

1

由於Laravel RedirectResponse class使用Macroable trait,因此您可以註冊response macros來執行此操作。

只需創建一個新的服務提供商說ResponseMacroServiceProvider。將其註冊到您的app.php中,並在啓動方法中註冊一個宏,如下所示:

namespace App\Providers; 

use Illuminate\Support\ServiceProvider; 
use Illuminate\Http\RedirectResponse; 

class ResponseMacroServiceProvider extends ServiceProvider 
{ 
    /** 
    * Register the application's response macros. 
    * 
    * @return void 
    */ 
    public function boot() 
    { 
     RedirectResponse::macro('withError', function ($value) { 
      return; // add logic here 
     }); 

     RedirectResponse::macro('withSuccess', function ($value) { 
      return; // add logic here 
     }); 
    } 
}