Laravel:重定向到controller@store方法会重定向到索引


Laravel: redirecting to a controller@store method redirects to the index instead

我正在尝试重定向到PostsController@store但页面重定向到PostsController@index:

在路线中.php:

Route::Resource('posts', 'PostsController');
Route::Resource('reviews', 'ReviewsController');

评论控制器

class ReviewsController extends Controller {
    public function store(Request $request) {
        // (do a bunch of stuff)
        return redirect(action('PostsController@store',[$request])); 
    }
}

帖子控制器

class  PostsController extends Controller {
    public function index() {
        dd('Incorrectly redirects here');
    }
    public function store(Request $request, Post $post) {
        dd('This is where I am trying to redirect to');
    }
}

不会发生错误或异常。但是,重定向后,网址为:

http://localhost/laravel2devel/public/posts?POST%20/laravel2devel/public/reviews%20HTTP/1.1%0D%0AAccept:%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20text/html,application/xhtml+xml,application/xml;q=0.9,image/webp,*/*;q=0.8%0D%0AAccept-Encoding:%20%20%20%20%20%20%20%20%20%20%20gzip,%20deflate%0D%0AAccept-Language:%20%20%20%20%20%20%20%20%20%20%20en-US,en;q=0.8%0D%0ACache-Control:%20%20%20%20%20%20%20%20%20%20%20%20%20max-age=0%0D%0AConnection:%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20keep-alive%0D%0AContent-Length:%20%20%20%20%20%20%20%20%20%20%20%20132%0D%0AContent-Type:%20%20%20%20%20%20%20%20%20%20%20%20%20%20application/x-www-form-urlencoded%0D%0ACookie:%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20XSRF-TOKEN=eyJpdiI6InhzN2JiK0FvYnIrUnVoeGZkcGNHOXc9PSIsInZhbHVlIjoiMFdrdnluNTdrR3l3OTlrZE9QSDA1WVwvalNoeDhHbG0wUXlvT0NBblRyWDNocFwvMExCZ0dqdVppbjR2M29SdnRmbWRDMkdRc042XC9ib3hrd2xZa1JCTmc9PSIsIm1hYyI6IjQ0ZmM4YTg4YmIxNTliMGY0MzI0OGMxMjMyZGM0ZDU4ZGM4MTVlMGM2NzVmZWNmM2YzZjI5YWU4OTJhOWM5MGYifQ%3D%3D;%20laravel_session=eyJpdiI6IjRCRThcLzdaR3ZaUUZJdTVQcmtVZk5BPT0iLCJ2YWx1ZSI6IlJYTlFaWk5WZEZQbHdkQzhtalhGbko0dnUzdzN0UjhOM2FLZUJQMkloNkMwdGRjc3VcL3lNUjBaXC9acktrUkxvRzZEWW4rVlY3Q0o2alB3VnJnNEZDdnc9PSIsIm1hYyI6ImIwMjRlMzIzYWYxNDI5NjEzYmFmZjljMjg4MmFkYzU1MTkzZDVkOWRjM2IwMzZlNTM1MTE2ZWExYTA3NmYyNzgifQ%3D%3D%0D%0AHost:%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20localhost%0D%0AOrigin:%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20http://localhost%0D%0AReferer:%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20http://localhost/laravel2devel/public/swords/1%0D%0AUpgrade-Insecure-Requests:%201%0D%0AUser-Agent:%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20%20Mozilla/5.0%20%28Windows%20NT%206.1;%20WOW64%29%20AppleWebKit/537.36%20%28KHTML,%20like%20Gecko%29%20Chrome/48.0.2564.97%20Safari/537.36%0D%0A%0D%0A_token=DeQeCCA8e19IIsxGhouybXiqIFoAMLsQ6sgp5EMF&post_title=asdfdas&user_id=2&reviewable_id=1&reviewable_type=item&post_body=asdfdfas

如果使用资源控制器,则应使用 HTTP POST 调用store()方法。如果你重定向,那么它将使用GET,所以Laravel会调用index()。请参阅 Laravel HTTP 资源控制器文档。

当您将路由添加为资源时,它将处理对每个方法的 Restful 请求。

对 url 的 get 请求将执行 index() 方法。对于执行 post 请求的store()方法,需要给出。 store()方法是添加资源。

请仔细阅读资源控制器文档。

我不清楚你的问题,但我的想法是,如果你想为特定帖子提供商店评论,只需像这样使用你的路线

Route::Resource('posts', 'PostsController');
Route::Resource('posts.reviews', 'ReviewsController');
然后

检查路由:列表然后你会得到路由列表,我希望你有两个表然后使用外键你可以存档你的目标

我希望这对你来说是很好的教程链接