Laravel 5.7将值传递给控制器中的路由

Laravel 5.7将值传递给控制器中的路由,laravel,laravel-5.7,Laravel,Laravel 5.7,我的控制器发布表单以创建新页面。发布表单后,我需要将用户重定向到新页面,该页面将包含上一表单中输入的页面内容。如果我只是返回view('mynewpageview',compact('mycontent')其中mymycontent是用于执行$mycontent->save()的对象命令时,我承担了有人刷新url的风险,因此通过创建新页面两次发布相同的内容 相反,我希望将用户重定向到实际的页面url 我的路线是 Route::get('/newpage/{id}','PageController

我的控制器发布表单以创建新页面。发布表单后,我需要将用户重定向到新页面,该页面将包含上一表单中输入的页面内容。如果我只是返回
view('mynewpageview',compact('mycontent')
其中mymycontent是用于执行
$mycontent->save()的对象命令时,我承担了有人刷新url的风险,因此通过创建新页面两次发布相同的内容

相反,我希望将用户重定向到实际的页面url

我的路线是
Route::get('/newpage/{id}','PageController@pagebyid');return redirect()->route('/newpage/$pageid')其中
$pageid=$mycontent->id我获取未定义的路由错误


阻止某人重新提交内容或传递参数的正确语法的解决方案是什么?

对我来说,正确的答案是-

  • 在路由文件中为路由指定名称
  • 然后在控制器中使用如下所示的数组传递参数
  • return redirect()->route('newpageid',['id'=>$pageid])

    对于基本(未命名)路由,正确的语法是
    返回重定向('/newpage/'.$pageid)

    您已经发现您可以选择使用


    最后但并非最不重要的是,感谢您考虑了“双重提交”问题!您实际上已经实现了:)

    您尝试使用
    return redirect()->路由('/newpage/'.$pageid)?你把变量本身放在字符串上,而不是他的值上。我放了。即使路径被精确修改,它仍然显示相同的错误。