php laravel 2 2 次提交的路线

php laravel 2 routes for 2 submits

我是 Laravel 的新手,只想拥有一个小程序,它有 2 个输入提交,值为 a 和 b, 当我单击 a 时,有一条到 controllerX@function 的路由,当我单击 b 时,它的 controllerX@functionB。 我不想改变我的 URL。我知道这在简单 php 中是如何工作的(输入隐藏) 我找不到解释这一点的文档。有人可以 link 帮我解决或回答我的问题吗?

这不完全是一个 laravel 问题,但您可以使用 hidden 输入将值为 ab 的参数发送到同一路由,或使用 <form> 元素的 action 参数将其发送到不同的路由。

<form method="POST">
  <input type="hidden" name="parameter" value="a"/>
    ...
  <button type="submit">Submit</button>
</form>

这将由 Controller 函数处理,例如 handlePost:

public function handlePost(Request $request){
  $hiddenParameter = $request->input("parameter");

  if($hiddenParameter == "a"){
    // do something;
  } else if($hiddenParameter == "b"){
    // do something else;
  } else {
    // tampering prevention;
  }
}

如果您使用 action 方法完成,您将具有以下形式:

<form method="POST" url="{{ url("/action/a") }}">
  ...
</form>

以及每个操作的函数,handleAhandleB:

public function handleA(Request $request){
  // do whatever;
}

public function handleB(Request $request){
  // do whatever;
}

最后,您需要路由来对应这些操作:

Route::post("/actions/a", "Controller@handleA");
Route::post("/actions/b", "Controller@handleB");

这是一个相当宽泛的答案,但应该能让您走上正确的道路。