I am trying to redirect to PostsController@store but the page redirects to PostsController@index:
In routes.php:
Route::Resource('posts', 'PostsController');
Route::Resource('reviews', 'ReviewsController');
ReviewsController
class ReviewsController extends Controller {
public function store(Request $request) {
// (do a bunch of stuff)
return redirect(action('PostsController@store',[$request]));
}
}
PostsController
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');
}
}
No error or exception occurs. However, once redirected, the url is:
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
答案 0 :(得分:2)
If you use resource controller then, store()
method is expected to be called with HTTP POST. If you redirect then it will use GET, so Laravel will call index()
instead. See Laravel HTTP Resource Controllers documentation.
答案 1 :(得分:0)
When you add a route as a resource it will handle the Restful requests to each methods.
A get request to the url will execute the index()
method. For the store()
method to execute a post request need to be given. store()
method is to add the resource.
Please go through the resource controller documentation.
答案 2 :(得分:0)
我不清楚您的问题,但我的想法是,如果您想要特定帖子的商店评论,只需使用您的路线
Route::Resource('posts', 'PostsController');
Route::Resource('posts.reviews', 'ReviewsController');
然后检查路线:列表然后你会得到路线列表,我希望你有两个表然后使用外键你可以归档你的目标
我希望这对你来说是个很好的教程LINK