【问题标题】:Custom routing on LaravelLaravel 自定义路由
【发布时间】:2018-10-04 05:24:42
【问题描述】:

我对@9​​87654323@ 有一些问题。我有这样的路线

$app->get('manufaktur/{secretkey}','Rest\LkppController@get_manufaktur');

它会生成这样的 URL: https://baseurl/api/manufacture/my-secret-key.

现在,我的问题是如何改变那条路线,让它变成这样 https://baseurl/api/manufacture?secretkey=my-secret-key.

之前谢谢。

【问题讨论】:

  • manufaktur != 制造
  • 这是不同的语言,所以在我的语言中制造是 manufaktur。
  • 可以,但是路线不匹配。

标签: php laravel rest api routes


【解决方案1】:

试试:

$app->get('manufaktur','Rest\LkppController@get_manufaktur');

然后用url() helper 生成它

【讨论】:

    【解决方案2】:

    使用request()->query('secretkey') https://laravel.com/docs/5.6/requests#retrieving-input

    【讨论】:

    • 我使用的是 Laravel 5.3,所以我只在中间件上使用 $request['secretkey']。但这也是可以做到的。
    【解决方案3】:

    如果你提交GET类型的表单(GET/POST),可以生成这种类型的URLhttps://baseurl/api/manufacture?secretkey=my-secret-key

    如果您正在创建 API 并且想要这样的 URL,则必须以硬编码的方式进行。

    在你的路线上试试这个。

    $app->get('manufaktur?secretkey={secretkey}','Rest\LkppController@get_manufaktur');
    

    【讨论】:

    • 我试过这个,但我发现我没有任何改变。并在中间件上使用 $request['secretkey'] 检索请求。
    • 你的网址呢?
    • 我不改变路由,我只访问baseurl/api/manufacture?secretkey=my-secret-key,我只是在中间件上验证 $request['secretkey'] 或 $request->query('secretkey')。
    • @elcicko 我认为您的首要任务是将 URL 更改为问题的标题,这就是我给出这个答案的原因:)
    • 是的,我认为我的问题标题有点混乱:)
    【解决方案4】:

    你的路线应该是:

     Route::get('/manufaktur','Rest\LkppController@get_manufaktur');
    

    在你的LkppController

     public function get_manufaktur(Request $request){
         if ($request->has('secretkey')) {
    
            $secretKey = $request->query('secretkey');
    
            return response()->json(['status'=>'OK','secret_key'=>$secretKey]);
    
         }else{
              return response()->json(['status'=>'error','message'=>'Secret Key Required']);
          }
     }
    

    【讨论】:

    • 如何在中间件上验证请求?我正在尝试打印输出,但没有显示请求。
    猜你喜欢
    • 2015-04-26
    • 2013-09-22
    • 2016-02-20
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-09-14
    • 2018-09-10
    相关资源
    最近更新 更多