2017-02-21 32 views
0

Am используя маршрут laravel для утверждения какой-либо формы из электронной почты. Так я зашифровать некоторые переменные и создали ссылку , которая, какLaravel route с параметрами

<a href="http://localhost/travel/tr/approveRequest?id=<?=$Encoded_travelRq_id?>&gsID<?=$Encoded_emp_gslab_id?>&decrypt<?=$Encoded_iv?>/">Approve</a>; 

теперь как маршрут может быть записан для этого на стороне Laravel, в котором я могу отделить переменные, такие как идентификатор, gsID, расшифровывать из URL и может отправлять к функции контроллера, используемой против этого маршрута?

ответ

1

Просто написать GET маршрут approveRequest:

Route::get('approveRequest', '[email protected]'); 

Поскольку вы используете параметры URL, вы можете просто получить их в функции approve() как этот

public function approve(Request $request) 
{ 
    $id = $request->id; 
    $gsID = $request->get('gsID'); 
    .... and so on for all your variables. 
} 

При таком подходе порядок параметры не имеют значения.

+0

для этого мой URL генерируется, как HTTP: // локальный/путешествия/тр/approveRequest ID = SR4% 3D я написал маршрут, как Route :: получить ('approveRequest/{par1}', «Gslab \ Путешествия \ TravelRequestController @ approveTravelRequest '); и на стороне контроллера публичную функцию approveTravelRequest ($ par1) \t { \t \t эхо $ ID = $ par1; \t \t выход; \t} все еще не принимает маршрут не получает – Prit

+0

Не ставьте параметр в определение маршрута. Посмотрите, как я это сделал. Потому что вы используете необязательный параметр с вопросительным знаком '?'. – EddyTheDove

0

Существует много способов сделать это.

Метод 1

Если вы сделаете URL, как показано ниже:

<a href="http://localhost/travel/tr/approveRequest/<?=$Encoded_travelRq_id?>/<?=$Encoded_emp_gslab_id?>/<?=$Encoded_iv?>">Approve</a>; 

Вы можете сделать маршрут с параметрами, как, как показано ниже.

Route::get('approveRequest/{par1}/{par2}/{par3}', '[email protected]'); 

И в функции получить соответствующий параметр следующим образом:

public function approve($par1,$par2,$par3,) 
{ 
    $id = $par1; 
    $gsID = $par2; 
    .... and so on for all your variables. 
} 

Метод 2 использования метода запроса:

Если ваш URL, как:

<a href="http://localhost/travel/tr/approveRequest?id=<?=$Encoded_travelRq_id?>&gsID<?=$Encoded_emp_gslab_id?>&decrypt<?=$Encoded_iv?>/">Approve</a>; 

Затем определяют Маршрут В корзину:

Route::post('approveRequest', '[email protected]'); 

Затем в функции контроллера вы получите параметры, как показано ниже:

Используйте запрос после имен в youe классе контроллера

  namespace App\Http\Controllers; 
      use Illuminate\Http\Request; 

      class SomeClassController extends Controller { 

       public function approve(Request $request) 
       { 
       $id = $request->id; 
       $gsID = $request->get('gsID'); 
       .... and so on for all your variables. 
       } 
      } 
0

Обычно я использую два способа:

1º путь:

Маршрут:

Route::get('approveRequest', '[email protected]'); 

Контроллер:

public function approve (Request $request) { 
    $var1 = $request->input('var1'); 
    $var2 = $request->input('var2'); 

    (...) do something with $var1 and $var2 
} 

2º путь:

Маршрут:

Route::get('approveRequest/{var1}/{var2}', '[email protected]'); 

Контроллер:

public function approve ($var1, $var2) { 

    (...) do something with $var1 and $var2: they already have a instance 
} 

Удачи! Надеюсь, это будет полезно.