【问题标题】:php laravel 2 routes for 2 submitsphp laravel 2 路由 2 次提交
【发布时间】:2018-03-06 22:03:13
【问题描述】:

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

【问题讨论】:

    标签: php laravel routes submit


    【解决方案1】:

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

    <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");
    

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

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-04-22
      • 2018-07-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多