Laravel : How to hide url parameter?

后端 未结 3 1622
一向
一向 2020-12-14 23:38

Here the scenario is I want to pass a variable which will be send from one page to another and in next page it\'s gonna store through a form. So I have passed the variable f

相关标签:
3条回答
  • 2020-12-14 23:57

    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);      
    }
    
    0 讨论(0)
  • 2020-12-14 23:59

    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.

    0 讨论(0)
  • 2020-12-15 00:07

    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.

    0 讨论(0)
提交回复
热议问题