Laravel:如何隐藏url参数?

时间:2016-10-10 04:56:05

标签: laravel laravel-5 laravel-5.2 laravel-routing

这里的场景是我要传递一个变量,该变量将从一个页面发送到另一个页面,在下一页中它将通过表单存储。所以我通过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>

3 个答案:

答案 0 :(得分:10)

后方法

路线

{!!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);      
}

控制器

<li> <a  href="{{route('registration',['course_id' => Crypt::encrypt('1') ])}}">A</a> </li>

获取方法

使用加密方法,它会在url中显示加密的id

查看

public function getregistration($course_id)
{    
  $course_id = Crypt::decrypt($course_id);    
  return view('index')->with('course_id',$course_id);      
}

控制器

Sitecore.Analytics.Data

答案 1 :(得分:1)

您无法隐藏URL中的参数。如果您不想显示ID,请尝试使用SLUG。我希望你明白什么是SLUG。如果你不这样做,那就是。如果你的课程标题是我的新课程标题那么它的slug将是我的新课程标题。并确保它与表格中的ID一样唯一。它对SEO也有好处,可读性很好。

答案 2 :(得分:0)

这里你无法隐藏url中的参数,而是你转换参数值encrypt或hash取决于你,

other-way是会话中的保存值,然后在url中调用session而不使用define参数。

因为laravel路由只对url / string / id的模式起作用,所以post get。你必须使用模式方法编写/获取动态值。

感谢。