Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 24.04.2017 16:01:03

Можно ли добавить get параметры к запросу в контроллере

Здравствуйте!

Необходимо интегрировать сторонний сервис в сайт на laravel. Есть параметры, сохраненные в сессии. Эти параметры необходимо передать в get параметрах, а сторонний сервис сам с ними производит свои действия. Каким образом можно передать параметры из сессии в гет параметр? Есть ли такой функционал?

Как достать параметры из сессии  - это понятно, но не могу найти, как добавить параметры в get? Или это надо делать еще в роуте?

Не в сети

#2 24.04.2017 17:08:49

Re: Можно ли добавить get параметры к запросу в контроллере

Не понятно про "как добавить параметры в get". Покажи код, который этот get посылает.

Изменено AlexeyMezenin (24.04.2017 17:09:04)

Не в сети

#3 24.04.2017 17:25:47

Re: Можно ли добавить get параметры к запросу в контроллере

Вот функция из контроллера:
public function getDoc(Request $request)
    {
        $loan = $request->session()->get('loan');
        if ($loan != null){
            foreach($loan as $kl => $vl){
                $request->input($kl, $vl);
            }
        }
        $contact_info = $request->session()->get('contact_info');
        if ($contact_info != null){
            foreach($contact_info as $kc => $vc){
                $request->input($kc, $vc);
            }
        }
        return view('docs/get', [
            'doc'     => $request->route('doc')
        ]);
    }
В результате в $request->input ничего нет. Да и вообще не знаю, поможет ли это или нет. Делаю первые шаги в laravel.
Вопрос заключается в том, как в контроллере добавить get параметры? До контроллера get параметров нет. Надо их вытащить из сессии и поместить в url. То есть в итоге из url типа http://site.ru/doc/name_doc должно получиться эмуляция строки типа http://site.ru/doc/name_doc?p=0&p1=1&p2=2 и т.п.
Может быть, использовать redirect для этого?

Изменено Konstantin_Matyashevskiy (24.04.2017 17:34:48)

Не в сети

#4 24.04.2017 17:38:33

Re: Можно ли добавить get параметры к запросу в контроллере

Спасибо, теперь понятно.

Если к контроллеру такой путь надо сделать http://site.ru/doc/name_doc?p=0&p1=1&p2=2, то называешь маршрут как-нибудь, например get-doc:

Route::get('name_doc', ['as' => 'get-doc', 'uses' => 'SomeController@getDoc'])

И используешь помощник route() вот так:

route('get-doc', ['p' => 0, 'p1' => 1, 'p2' => 2])

Потом в самом методе можно ловить GET параметры помощником request:

$p = request('p')

PS: Вместо этой бороды $request->session()->get('contact_info') используй просто session('contact_info')

Изменено AlexeyMezenin (24.04.2017 17:39:29)

Не в сети

#5 24.04.2017 17:42:31

Re: Можно ли добавить get параметры к запросу в контроллере

Спасибо за быстрый ответ!!!
Бороды начал делать от безысходности, когда ничего не помогало )))

Не в сети

#6 24.04.2017 17:58:47

Re: Можно ли добавить get параметры к запросу в контроллере

извините за еще один глупый вопрос, не могу найти, как использовать помощника?

route('get-doc', ['p' => 0, 'p1' => 1, 'p2' => 2])

Это что, надо прописывать в контроллере или где?

Не в сети

#7 24.04.2017 18:25:00

Re: Можно ли добавить get параметры к запросу в контроллере

Хоть где, это глобальный помощник, который создает URL к контроллеру с нужными параметрами. Например, этот код создаст ссылку в представлении:

<a href="{{ route('get-doc', ['p' => 0, 'p1' => 1, 'p2' => 2]) }}">Link to get-doc with params</a>

Изменено AlexeyMezenin (24.04.2017 18:25:15)

Не в сети

#8 24.04.2017 18:32:05

Re: Можно ли добавить get параметры к запросу в контроллере

Еще раз спасибо!!!

Не в сети

Подвал раздела