Laravel 5.4:没有表格的路线或隐藏网址

时间:2018-03-12 13:05:11

标签: php laravel post routes

我在routes / web.php中有以下路径

Route::get('search/{model}/{lang}/{id}', ['as'=>'tag','uses'=>'SearchController@tag']);

视图中,我有一个带有标签的foreach:

<li>
    <a href="{{ route('tag', ['model'=>'new', 'lang'=>$lang, $tag->id]) }}">
        {{$tag_lang->name}}
    </a>
</li>

我想要的是,在浏览器中只显示没有参数型号,lang和id的“搜索”网址( domain.com/search 而不是 domain.com/search / model / lang / id ),但我不想使用表单。有没有办法在没有表格的情况下使用邮政路线或隐藏网址?感谢。

2 个答案:

答案 0 :(得分:1)

我建议使用POST路由,因为参数不会作为查询字符串显示。示例路线如下:

Route::post('search', ['as'=>'tag','uses'=>'SearchController@tag']);

然而,您需要将您的href转换为表格。

如果您确实需要使用GET,那么请查看使用散列或加密转换查询字符串,以便从用户对其进行模糊处理,然后在控制器中解码结果。

答案 1 :(得分:1)

你可以让帖子看起来像锚:

<style type="text/css">
    form.link_mimic {display:inline}
    form.link_mimic input {display:inline;padding:0;border-width:0;margin:0;background:none;color:blue}
    form.link_mimic input:hover {text-decoration:underline}
</style>

    Click <form class="link_mimic" method="post" action="my_url">
      <input type="hidden" name="lang" value=" {{$tag->id}}">
      <input type="submit" value="{{$tag_lang->name}}">
    </form> to change the language.

试一试,也许这就是你要找的东西。