在检查Laravel中的值后重定向回到表单

时间:2017-11-08 15:27:43

标签: php forms laravel redirect controller

我有一个通过POST将数据发送到控制器功能的表单,该控制器功能显示一个视图,其中包含用户输入的概述。我这个视图用户有2个选项 - 如果数据正常则保存或编辑它们。

有没有办法通过输入重定向?我无法弄明白所以我在视图中使用隐藏输入的表单,其中包含数据,然后通过POST方法将其发送到显示表单功能。但我不认为这是应该有更简单的事情的正确方法。

谢谢

4 个答案:

答案 0 :(得分:1)

假设您使用的是Laravel 5.5

在阅读了关于Nisarg Shah的回答的评论之后,我认为如果没有隐藏形式,我会做的是保存他在会话中和最终保存后首次传递的数据(编辑或按下之后)保存按钮)只需从会话中删除数据。

所以在第一个表单之后我们到达你的控制器方法,在这里我们将数据保存到会话中并向用户显示他可以看到数据的视图,在这里你可以用{{ session('key') }}在某处打印数据在所有数据的视图中。

用户现在可以选择编辑数据,然后编辑按钮将转到特定路线,在这里您将返回一个包含他可以编辑的表单的视图,并在编辑后发布到另一个路径,您只需保存数据正常。

如果他按下"确认"查看您将再次使按钮转到特定URL,并在控制器方法中只检索会话数据并将其保存到数据库。

答案 1 :(得分:0)

你试过这个吗??

public function store()
{
   //.....    

   return redirect()->back()->withInput();  
}

答案 2 :(得分:0)

您可以使用

back()->withInput();

或者如果您想重定向到另一个网址,请使用

return Redirect::route('ROUTE.NAME')->withInput();

答案 3 :(得分:0)

所以你要做什么:

  • 假设用户想保存数据并点击好,您只需通过模型或查询构建器将此信息存储到数据库中

    DB::table('usersinput')->insert([
       ['email' => 'taylor@example.com', 'name' => 'taylor'],
       ['email' => 'dayle@example.com', 'name' => 'dayle']
    ]);
    
  • 让我们说用户点击编辑,而不是使用值

    返回视图
    $email = "dayle@example.com";
    $name = "dayle";
    return view('welcome', compact('email', 'name'));
    
  • 在视图中,您可以将输入值设置为数据

    <form>
      email:<br>
      <input type="text" name="{{ $email }}"><br>
      name:<br>
      <input type="text" name="{{ $name }}">
    </form>