Laravel将方法添加到供应商类

时间:2017-03-13 10:18:06

标签: laravel

在laravel中,我们可以使用with()redirect(),例如

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

我想创建一些其他功能,例如withError()withSuccess()

如何以及在何处创建此内容?

1 个答案:

答案 0 :(得分:2)

当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
        });
    }
}