【问题标题】:Laravel Multiple Optional Parameter Not Working and Two Back Slashes in URLLaravel 多个可选参数不起作用和 URL 中的两个反斜杠
【发布时间】:2017-03-29 11:24:54
【问题描述】:

这是我的路线:

Route::get('/edit_atten/{id}/{date}/{c_in?}/{c_out?}', 'AttendanceController@editAttendance');

http://127.0.0.1:8000/edit_atten/31/2017-03-20//12:25:30

 public function editAttendance($id, $date, $c_in=null, $c_out=null)
{
    $this_user = Attendance::find($id);

    $this_user->check_in = $c_in;
    $this_user->check_out = $c_out;


    $this_user->save();

    echo "Success";

}

这里,c_in & c_out 是可选参数。如果我只提交 c_out 则 URL 显示如下:http://127.0.0.1:8000/edit_atten/31/2017-03-20//12:25:30 它创建路由问题。因为 URL 中显示了两个斜杠 (//)!虽然这个 (c_in) 参数是可选的,但为什么要显示这个?

有什么解决办法吗?

【问题讨论】:

    标签: laravel optional-parameters


    【解决方案1】:
    Route::get('/edit_atten', 'AttendanceController@editAttendance');
    

    http://127.0.0.1:8000/edit_atten?id=31&date2017-03-20&c_out=12:25:30

    public function editAttendance(Request $request)
    {
      $id = $request->input('id');
      $date = $request->input('date');
      $c_in = $request->input('c_in');
      $c_out = $request->input('c_out');
    
      $this_user = Attendance::find($id);
      $this_user->check_in = $c_in;
      $this_user->check_out = $c_out;
      $this_user->save();
    
      echo "Success";
    }
    

    【讨论】:

    • 但是,我使用 URL 从 Ajax 发送这些数据。 @suthar
    • 在ajax中使用get方法
    猜你喜欢
    • 2017-04-27
    • 1970-01-01
    • 2015-08-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-04-22
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多