it-swarm-pt.tech

Laravel : Como ocultar o parâmetro de URL?

Aqui o cenário é que eu quero passar uma variável que será enviada de uma página para outra e na próxima página ele irá armazenar através de um formulário. Então eu passei a variável da primeira página para a segunda página através do URL. Mas eu quero esconder o parâmetro no URL. Como eu faço isso?

Aqui está o meu percurso:

Route::get('/registration/{course_id}',[
   'uses'=>'[email protected]',
    'as'=>'registration'
]);

E controlador:

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

E a primeira página é assim que eu envio o valor para a primeira página:

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

Post Method

Rota

Route::post('/registration',['uses'=>'[email protected]','as'=>'registration']);

Visão

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

Controlador

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

Obter método

usar o método de criptografia, ele mostrará o código criptografado no URL

Visão

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

Controlador

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

Você não pode ocultar um parâmetro em URL. Se você não quiser mostrar o ID, tente usar SLUG. Espero que você entenda o que é um SLUG. Se você não fizer isso, então aqui está. Se o título do curso for Meu novo Título do Curso então seu slug seria meu-novo-curso-título . E certifique-se de que é exclusivo como um ID na tabela. Também é bom para SEO, legível e parece ser bom.

1
Jamal Abdul Nasir

aqui não tem como esconder o parâmetro no url, ao invés disso você converte o valor do parâmetro criptografar ou hash depende de você,

other-way é salvar o valor na sessão primeiro, depois chamar o valor da sessão sem definir o parâmetro em url.

porque laravel rota apenas trabalhando para o padrão de url/string/id, post get. valor dinâmico você deve estar escrevendo/recebendo usando o método padrão.

Obrigado.

0
Xain Bin Kafeel