【问题标题】:how to handle dynamic url in laravel如何在 laravel 中处理动态 url
【发布时间】:2019-03-19 20:23:58
【问题描述】:

我的应用程序中有一个名为“工作”的页面,所有工作都将在其中显示。 我在同一页面上有搜索工作输入​​字段 用户使用输入字段搜索工作时,会将他重定向到“jobs?keyword=abc” 而且我还有一个工作过滤器部分,用户可以在其中按“位置、合同类型”过滤工作。

我已经通过一些 javascript 创建了表单,用户填写了一些字段,这些字段只能通过表单提交。

if user searches a job by keyword then url will be like "jobs?keyword=abc".
if user filter jobs by location then url be like "jobs?location=abc".
if user filter jobs by contract types then url be like "jobs?contract_type=abc".
if user filter jobs by keyword and contract types then url be like "jobs?keyword=abc&contract_type=abc".

每次用户提交表单 url 都会发生变化。

所以我的问题是如何处理路由上的动态 url

目前我的路线中有这个 Route::get('jobs', 'todocontroller@jobs');

还有我的控制器 todocontroller.php

public function jobs()
    {
        //some code here
    }

提前感谢任何帮助。

【问题讨论】:

    标签: laravel url dynamic


    【解决方案1】:

    这就是Request 所做的事情

    public function jobs(Request $request)
    {
         $request->all(); // this is where all the query string, body or others param contains in it..
    }
    

    例子

    if user searches a job by keyword then url will be like "jobs?keyword=abc".
    

    然后request->keyword返回abc

    if user filter jobs by keyword and contract types then url be like "jobs?keyword=abc&contract_type=abc".
    

    然后request->keyword返回abc,request-> contract_type返回abc

    使用路径

    /url/location/{param}
    

    在控制器中

    public function jobs(Request $request, $param)
    {
         $request->all(); // this is where all the query string, body or others param contains in it..
         echo $param; //display param
    }
    

    【讨论】:

    • 但是如果我有一个友好的 url,比如关键字搜索作业呢?keyword=abc 这个 url 应该是 jobs/abc - 对于位置搜索作业?location=abc 这个 url 也应该是 jobs/abc AND对于关键字搜索 jobs?keyword=abc&contract_type=abc 这个 url 应该是 jobs/abc/abc 我如何修改这种类型的 url 的路由???
    【解决方案2】:

    您可以检索使用request()->all();发送的所有参数

    这应该在控制器的 jobs 函数中。

    【讨论】:

      猜你喜欢
      • 2013-12-02
      • 1970-01-01
      • 2017-10-30
      • 1970-01-01
      • 2011-01-05
      • 2023-03-10
      • 2019-12-23
      • 2021-04-25
      • 1970-01-01
      相关资源
      最近更新 更多