【问题标题】:How to pass multiple arguments with url (routing) in laravel 5.1如何在laravel 5.1中使用url(路由)传递多个参数
【发布时间】:2019-10-17 20:36:42
【问题描述】:

LARAVEL 5.1

我想编辑具有 ID 和 TktID 的表。

我想将这两个参数传递给我的 TestController 的编辑方法。

我的链接:

<a href="/sig/edit?id={{$value->id}}&ticketid={{$value->ticketid}}" title="Edit signature">

我的路由.php

Route::get('sig/edit{id}{ticketid}','TicketsController@edit');

控制器的编辑方法:

 public function edit($id, $ticketid)
    {
        //
    }

如何将 route.php 中的两个参数传递给控制器​​。

【问题讨论】:

    标签: php laravel laravel-5.1


    【解决方案1】:

    你忘了结束括号

    您的 routes.php 文件中有错误:

    Route::get('sig/edit{id}{ticketid}', 'TicketsController@edit');
    

    应该是:

    Route::get('sig/edit/{id}/{ticketid}', 'TicketsController@edit');
    

    注意 editid 之后的正斜杠。

    并且在视图中它应该是以下之一:

    <a href="{{ url('sig/edit/ ' . $value->id . '/' . $value->ticketid .')}}" title="Edit signature">
    

    或者

    <a href="/sig/edit/{$value->id}/{$value->ticketid}" title="Edit signature">
    

    我希望这对您有所帮助。干杯。

    【讨论】:

    • 好的,从 broswer ip/sig/edit/ree 调用怎么样?
    【解决方案2】:

    路线

    Route::get('sig/edit{id}{ticketid}','TicketsController@edit')-&gt;name(sig.edit);

    链接

    &lt;a href="{{route('sig.edit',[$value-&gt;id,$value-&gt;ticketid])}}" title="Edit signature"&gt;

    【讨论】:

      【解决方案3】:
       <a class="getValues" href="/sig/edit" title="Edit signature"/>Edit</a>
          <input type="hidden" id="id" name="id" value"={{$value->id}}"/>
          <input type="hidden" id="ticketid" name="ticketid" value="{{$value->ticketid}}"/>
      
      jQuery(document).ready(function(){
           var $id=jQuery('#id').val();
           var $ticketid=jQuery('#ticketid').val();
      
           jQuery('getValues').on('click',function(){
                $.ajax({
                  url:'yourController/controller'sFunction',
                        data:{'id':$id,'ticketid':$ticketid},
               }).success(function(response){
                      alert(rseponse);
                  });
           })
      });
      

      将这行代码粘贴为控制器函数的第一行...

      $inputs = Input::all();
      

      并获取输入值,例如

      echo    $ticketid=$inputs['ticketid'];
       echo "<br/>";
       echo     $id=$inputs['id'];
      

      【讨论】:

      • 没有要提交的表格。这两个隐藏字段可以点击网址提交吗?
      • @martin 现在试试这个,无需提交表单即可使用
      • 我们如何传递多个可选参数并使用它们?
      【解决方案4】:

      在我的例子中,我传递了两个这样的参数:

      路线

      Route::get('/add/{debitid}/{creditid}',
          ['as'=>'loan_add',
          'uses'=>'LoanController@loanset']);
      

      在 LoanController 中

      public function loanset($debitid, $creditid)
      {
          $debit_user= UserModel::findOrFail($debitid);
          $credit_user= UserModel::findOrFail($creditid);
          return view('load.add',compact('debit_user','credit_user'));
      }
      

      这个例子可能会有所帮助。

      【讨论】:

        【解决方案5】:

        我发现这种方法可以使您的 URL 保持不变并访问多个参数

        <a href="/sig/edit?id={{$value->id}}&ticketid={{$value->ticketid}}" title="Edit signature">
        

        路线

        Route::get('sig/edit', 'TicketsController@edit');
        

        访问控制器中的参数值

        控制器

        public function edit(){
        $id = Input::get('id');
        $ticketId = Input::get('ticketid');
        }
        

        注意:在控制器中导入输入

        use Illuminate\Support\Facades\Input;
        

        【讨论】:

          【解决方案6】:

          routes/web.php 文件中 - 这个对我有用。

          Route::any('/documents/folder/{args?}', function($args){
             $args = explode('/', $args);
             return $args;
          })->where('args', '(.*)');
          

          它现在应该处理每个参数/参数。

          希望它有效!

          【讨论】:

          • 我们如何传递多个可选参数并使用它们?
          【解决方案7】:

          当你传递?name=value这样的参数时,你不必为它设置路由,你可以直接在你的控制器中通过依赖注入访问它强>

          你必须在你的班级上面添加这个

          use Illuminate\Http\Request;
          

          然后在控制器中注入它并按名称获取参数值:

              public function edit(Request $request)
              {
                  //
              $id= $request->id;
           $tkt= $request->tkt_id;
              }
          
          
          

          【讨论】:

            猜你喜欢
            • 2018-07-26
            • 1970-01-01
            • 2015-10-31
            • 2019-03-17
            • 2016-02-21
            • 2014-06-08
            • 2020-01-23
            • 2021-04-04
            • 2019-12-07
            相关资源
            最近更新 更多