重定向和laravel方法的结构

时间:2016-09-07 20:13:53

标签: php laravel oop design-patterns return

如您所知,我们可以通过重定向发送数据以及路由更改。 重要的是这样一个类,我们如何定义操作顺序可变的方法

在这里打电话:

 return redirect(route_name);

我希望重定向发生.. 但是通过调用以下代码:

 return redirect(route_name)-> with(key,value);

redirect()必须执行的操作更改并让方法接收该数据然后重定向..而如果您只使用redirect()它会立即重定向.. 我们如何实现方法机制以使其操作发生变化?

1 个答案:

答案 0 :(得分:2)

要使用参数重定向到命名路由,您可以执行以下操作:

return redirect()->route('profile', ['id' => 1]);

取自:https://laravel.com/docs/5.3/responses#redirecting-named-routes

评论更新:

如果你看一下函数定义的帮助文件:

https://github.com/laravel/framework/blob/5.1/src/Illuminate/Foundation/helpers.php

你会看到,当你致电redirect时,它实际上总是从Laravel容器中获取一个实例

if (! function_exists('redirect')) {
    /**
     * Get an instance of the redirector.
     *
     * @param  string|null  $to
     * @param  int     $status
     * @param  array   $headers
     * @param  bool    $secure
     * @return \Illuminate\Routing\Redirector|\Illuminate\Http\RedirectResponse
     */
    function redirect($to = null, $status = 302, $headers = [], $secure = null)
    {
        // If no path given return an instance from the container
        if (is_null($to)) {
            return app('redirect');
        }

        // Path given, call the 'to' method on an instance 
        return app('redirect')->to($to, $status, $headers, $secure);
    }
}