#laravel #routes #controller
#laravel #маршруты #контроллер
Вопрос:
Я отправляю хэшированный URL-адрес, и когда я получаю его, я должен показать представление в Laravel, поэтому у меня есть эти функции на контроллере, а также некоторые маршруты:
Это мои маршруты:
Route::post('/sendLink', 'PaymentPaymentController@getPaymentLink');
Route::get('/payment?hash={link}', 'PaymentPaymentController@show');
И это функции, которые у меня есть на моем контроллере:
public function getPaymentLink (Request $request){
$budgetId = $request['url.com/payment/payment?hash'];
$link = Crypt::decryptString($budgetId);
Log::debug($link);
//here to the show view i wanna send the link with the id hashed, thats why i dont call show($link)
$view = $this->show($budgetId);
}
public function show($link) {
$config = [
'base_uri' => config('payment.base_uri'), ];
$client = new Client($config);
$banking_entity = $client->get('url')->getBody()->getContents();
$array = json_decode($banking_entity, true);
return view('payment.payment-data')->with('banking_entity', $array);
}
И при этом выдается сообщение об ошибке «Страница не найдена».
Чего я хочу, так это того, что когда я клиент нажимаю на ссылку, я отправляю ему ссылку в этом формате «url.com/payment/payment?hash=fjadshkfjahsdkfhasdkjha «, запускаю функцию getPaymentLink, чтобы я мог получить расшифровку из этого хэша, а также показать ему представление.
Комментарии:
1. Создайте свой маршрут,
Route::get('/payments', 'PaymentPaymentController@show');
и по запросу GET он автоматически преобразуется как/payments?hash=hahshgs
из контроллера, вы можете перехватить его как$hash = request('hash');
2. Вы хотите сказать, что я должен поместить $ hash = request (‘хэш’) в мою функцию show?
Ответ №1:
нет необходимости ?hash={link}
в get route
это параметры запроса, и они будут получены с $request
Нравится:
$request->hash
// or
$request->get('hash')
Комментарии:
1. да, но не забудьте ввести запрос
public function show(Request $request)
Ответ №2:
Вам нужно определить маршрут следующим образом:
Route::get('/payment/{hash}', 'PaymentPaymentController@show');
Теперь вы можете просто использовать его в своем методе контроллера, как показано ниже:
<?php
public function getPaymentLink (Request $request,$hash){
$budgetId = $hash;
// further code goes here
}