常用的 redirect()->route
//demo, route不帶任何value
return redirect()->route("topic.list");
//demo, 某些頁面一定要帶上$id
return redirect()->route("topic.edit", $id);
//demo, 帶上flash message
return redirect()->route("topic.edit", $id)->with('success', 'Updated successfully.');
傳的值跟 route沒有關系怎辦?
方法一:GET - 嘗試用get在網址中直接設定
但帶上value 轉頁時,如果那個value 不是 $id
, 即是想傳的值跟 route 沒有關系要怎麼辦?你可以考慮轉用這個方式 redirect(route())."?key=vaule"
//demo
$valueB = 'Hello GET value';
return redirect(route("topic.edit", $id) . "?other_value=$valueB")->with('success', 'Updated successfully.');
回到 blade 可這樣判斷是否有其他值,, 你應該會見到 Hello GET value
@if(request()->other_value)
<h2>{{ request()->other_value }}</h2>
@enfif
方法二: with() - Flash message呢?
上面不是一直在用 with 來傳alter message嗎?
->with('success', 'Updated successfully.');
那麼我們可以改成
$valueB = 'Hello Session value';
return redirect()->route("topic.edit", $id)->with('success', 'Updated successfully.')->with('other_value', $valueB);
回到 blade 可這樣判斷, 你應該會見到 Hello Session value
@if(Session::has('other_value'))
{{ Session::get('other_value') }}
@endif
如果有了解到,其實這樣傳比GET的差別,因為真的只會只傳送1次
你再刷新就沒有了