Laravel:将输入查询的结果更改为友好URL

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Laravel:将输入查询的结果更改为友好URL相关的知识,希望对你有一定的参考价值。

如何更改提交表格所产生的网址─

http://localhost:8000/estates?zone=London&type=villa

到这个网址:

http://localhost:8000/estates/London/villa

需要使URL对搜索引擎更友好。

我从表格中的输入字段中获取区域和别墅

localhost:8000/estates

当我提交表格时,我得到一个这样的网址 -

localhost:8000/estates?zone=London&type=villa

在提交表格时,我希望有这个网址,而不是上面的内容 -

localhost:8000/estates/London/villa

答案

当您提交表单时,它应该在控制器操作中捕获发布数据,如下所示 -

class MyController
{
    public function create()
    {
        // Your form
    }

    public function store()
    {
        // This is where you receive the zone and villa in the request
    }
}

正如您所看到的,您已经在商店方法中收到了请求中的输入字段,现在您可以执行以下操作 -

public function store(Request $request)
{
    // Your code here
    redirect()->to($request->zone.'/'.$request->villa);
}

请确保您为区域和别墅创建了路线,否则重定向到不存在的路线/网址将无法正常工作。

为您的要求创建这样的路线 -

Route::get('estates/{zone}/{villa}', 'MyController@anotherMethod');

您将在控制器中使用另一种操作方法来接收此区域和别墅输入,如下所示 -

public function anotherMethod($zone, $villa)
{
    // Access your $zone and $villa here
}
另一答案

您应重组您的路线,以便区域和村庄成为路线参数。

因此,例如,http://localhost:8000/estates/London/villa的路线将是Route::post('/estates/{zone}/{villa}', 'SomeController@action'),在控制器中,您可以将区域和村庄作为参数注入。所以你可以使用这样的东西:

class SomeController {
         public function action(Request $request, string $zone, string $villa){

         }
}

它在Laravel文档中的路由的路径参数部分中进一步描述。

以上是关于Laravel:将输入查询的结果更改为友好URL的主要内容,如果未能解决你的问题,请参考以下文章

wordpress 使用 htaccess 更改为带有变量的友好 URL

将连接查询更改为 laravel

如何将我的网址更改为用户友好的网址 [重复]

如何在没有 DB 的情况下将 sql 查询更改为 laravel 模型查询

正则表达式 - 对 URL 友好的任何文本

将格式输入 type='date' 从 mm-dd-yyyy 更改为 dd-mm-yyyy Laravel [重复]