Laravel : How to hide url parameter?

南楼画角 提交于 2019-11-29 02:25:22

Post Method

Route

Route::post('/registration',['uses'=>'AppController@getregistration','as'=>'registration']);

View

{!!Form::open(array('url' => '/registration')) !!}
  {!! Form::hidden('course_id', '1') !!}
  {!! Form::submit('registration') !!}
{!! Form::close() !!}

Controller

public function getregistration(Request $request)
{   
    $course_id = $request->input('course_id');
    return view('index')->with('course_id',$course_id);      
}

Get method

use encryption method, it will show encrypted id in url

View

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

Controller

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

You cannot hide a parameter in URL. If you don't want to show the ID then try using SLUG. I hope you understand what is a SLUG. If you don't then here it is. If you course title is My new Course Title then its slug would be my-new-course-title. And make sure it is unique like an ID in the table. It is also good for SEO, readable and looks good.

here is no way you hide parameter in url, rather then you convert parameter value encrypt or hash is up to you,

other-way is save value in session first, then call the value from session without define parameter in url.

because laravel route only working to pattern of url /string /id, post get. dynamic value you must be writing / getting using pattern method.

Thanks.

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!