簡體   English   中英

如何根據 Post 請求以 Laravel 形式重定向?

[英]How to redirect in Laravel form on Post request?

我是 Laravel 的新手,遇到了以下問題:

我有一個應該根據 Post 請求重定向的表單,但沒有發生重定向。

這是我的表格:

<form action="{{route('cart-store')}}" method="post">
    {{csrf_field()}}
    <input type="hidden" name="id" value="{{$product->id}}">
    <input type="hidden" name="name" value="{{$product->name}}">
    <input type="hidden" name="price" value="{{$product->price}}">

    <button type="submit" class="btn btn-primary shop-button">Add to Card</button>
</form>

這是 CartController:

public function store(Request $request)
{

    Cart::add($request->id, $request->name, 1, $request->price)->associate('App\Product');

    return redirect()->route('cart-index')->with('success_message', 'Item was added to your cart!');

}

這是路線:

Route::post('/cart', 'CartContrloller@store')->name('cart-store');

當我點擊提交按鈕時,URL 會填充產品數據,但我仍然在同一頁面上,而不是被重新注冊到購物車。

我不知道為什么會這樣。 有沒有辦法至少找出損壞的東西? 我使用的是 5.7 版本。

我想這里的最佳實踐可能是使用 laravel 的重定向返回:

return redirect()->back()->with('success_message','any message you want')

你不能重定向到 post 方法,post 路由除了:csrf_token 和一些帶有 POST 方法的數據,重定向它自己是 HTTP GET。

在您的控制器中,您需要在 redirect() 中使用 route('cart-index')

public function store(Request $request)
{

    Cart::add($request->id, $request->name, 1, $request->price)->associate('App\Product');

    return redirect(route('cart-index'))->with('success_message', 'Item was added to your cart!');

}

或者如果您需要重定向回嘗試:

return redirect()->back()->with('success_message', 'Item was added to your cart!');

你需要在你的項目中編寫這些代碼:

Route::get('/cart', 'CartContrloller@index')->name('cart-index');
Route::post('/cart', 'CartContrloller@store')->name('cart-store');

public function index()
{
    return view('card.form');
}

public function store(Request $request)
{
    dd($request->all());
    Cart::add($request->id, $request->name, 1, $request->price)->associate('App\Product');

    return redirect()->route('cart-index');
}

檢查一下,如果您再次在您的 url 中播種表單參數,我確定您的刀片表單方法沒有發布,它獲取,也許您的更改沒有保存!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM