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
输入将值为 a
或 b
的参数发送到同一路由,或使用 <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>
以及每个操作的函数,handleA
和 handleB
:
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");
这是一个相当宽泛的答案,但应该能让您走上正确的道路。
我是 Laravel 的新手,只想拥有一个小程序,它有 2 个输入提交,值为 a 和 b, 当我单击 a 时,有一条到 controllerX@function 的路由,当我单击 b 时,它的 controllerX@functionB。 我不想改变我的 URL。我知道这在简单 php 中是如何工作的(输入隐藏) 我找不到解释这一点的文档。有人可以 link 帮我解决或回答我的问题吗?
这不完全是一个 laravel 问题,但您可以使用 hidden
输入将值为 a
或 b
的参数发送到同一路由,或使用 <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>
以及每个操作的函数,handleA
和 handleB
:
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");
这是一个相当宽泛的答案,但应该能让您走上正确的道路。