【问题标题】:Laravel: Change result of input query to friendly urlLaravel:将输入查询的结果更改为友好的 url
【发布时间】:2019-03-01 01:07:37
【问题描述】:

如何更改提交表单时生成的此 URL-

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

到这个网址:

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

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

我从表单中的输入字段中获取zonevilla

localhost:8000/estates

当我提交表单时,我会得到一个这样的 URL-

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

我希望在提交表单时使用此 URL,而不是上面的 -

localhost:8000/estates/London/villa

【问题讨论】:

    标签: laravel forms seo


    【解决方案1】:

    当您提交表单时,它应该像这样在控制器操作中捕获发布数据-

    class MyController
    {
        public function create()
        {
            // Your form
        }
    
        public function store()
        {
            // This is where you receive the zone and villa in the request
        }
    }
    

    如您所见,您已在 store 方法中收到 request 中的输入字段,现在您可以执行以下操作-

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

    请确保您已为区域和别墅创建了路线,否则重定向到不存在的 路线/url 将不起作用。

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

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

    您的控制器中将有另一个操作方法来接收像这样的 zonevilla 输入-

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

    【讨论】:

    • dud 还有一个问题,它在搜索引擎中的效果好吗?在这种情况下,这个 q 不适合我!
    • 参数 URL 不利于 SEO。所以是的,像庄园/区域/别墅这样的 URL 结构更好。您可以在此处阅读有关此问题的更多信息-moz.com/blog/15-seo-best-practices-for-structuring-urls
    【解决方案2】:

    你应该重组你的路线,让区域和村庄成为路线参数。

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

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

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

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2014-06-22
    • 1970-01-01
    • 2019-02-11
    • 1970-01-01
    • 1970-01-01
    • 2017-03-06
    • 1970-01-01
    • 2013-08-14
    相关资源
    最近更新 更多