Laravel:如何隐藏 url 参数?
Posted
技术标签:
【中文标题】Laravel:如何隐藏 url 参数?【英文标题】:Laravel : How to hide url parameter? 【发布时间】:2017-02-18 11:25:04 【问题描述】:这里的场景是我想传递一个变量,该变量将从一个页面发送到另一个页面,在下一页它将通过表单存储。所以我通过 URL 将变量从第一页传递到第二页。但我想隐藏 URL 中的参数。我该怎么做?
这是我的路线:
Route::get('/registration/course_id',[
'uses'=>'AppController@getregistration',
'as'=>'registration'
]);
和控制器:
public function getregistration($course_id)
return view('index')->with('course_id',$course_id);
第一页是我将值发送到第一页的方式:
<li> <a href="route('registration',['course_id' => '1'])">A</a> </li>
【问题讨论】:
使用 POST 代替。 ***.com/questions/32076500/… 或 laracasts.com/discuss/channels/laravel/… 那么我如何将值发送到?我已经编辑了 Qus.. 你能再检查一下吗? @RaxWeber 您必须构建一个表单并使用它来发出发布请求,而不是使用<a>
。
【参考方案1】:
发布方法
路线
Route::post('/registration',['uses'=>'AppController@getregistration','as'=>'registration']);
查看
!!Form::open(array('url' => '/registration')) !!
!! Form::hidden('course_id', '1') !!
!! Form::submit('registration') !!
!! Form::close() !!
控制器
public function getregistration(Request $request)
$course_id = $request->input('course_id');
return view('index')->with('course_id',$course_id);
获取方法
使用加密方式,会在url中显示加密后的id
查看
<li> <a href="route('registration',['course_id' => Crypt::encrypt('1') ])">A</a> </li>
控制器
public function getregistration($course_id)
$course_id = Crypt::decrypt($course_id);
return view('index')->with('course_id',$course_id);
【讨论】:
【参考方案2】:这里没有办法隐藏 url 中的参数,而是转换参数值加密或散列取决于你,
另一种方式是先将值保存在会话中,然后从会话中调用值而不在url中定义参数。
因为 laravel 路由只适用于 url /string /id 的模式,post get。您必须使用模式方法写入/获取的动态值。
谢谢。
【讨论】:
【参考方案3】:您不能隐藏URL
中的参数。如果您不想显示ID
,请尝试使用SLUG
。我希望你明白什么是SLUG
。如果你不这样做,那就是这里。如果您的课程标题是 My new Course Title,那么它的 slug 将是 my-new-course-title。并确保它像表格中的ID
一样唯一。它对 SEO 也有好处,可读性强,看起来也不错。
【讨论】:
以上是关于Laravel:如何隐藏 url 参数?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 Vue JS 中使用 Laravel 进行身份验证,以便用户在没有登录的情况下无法从 URL 进入他的页面