2015-08-30 2 views
0

Когда я перенаправляю маршрут, не могу получить доступ к запросам данных.Laravel - запрос в контроллере пуст после перенаправления по маршруту

Это является информация запрос Ajax:

Content-Type: application/x-www-form-urlencoded 
param1=my+param&request=search 

routes.php

use Illuminate\Http\Request; 

Route::any('/items/search', '[email protected]'); 

Route::any('/items', [ 
    function(Request $request){ 

     if ($request->input('request') == 'search') { 
      // echo $request->input('param1'); // returns param1 value correctly 
      return redirect()->action('[email protected]')->withInput(); 
     } 
    } 
]); 

И это контроллер:

namespace App\Http\Controllers; 
use Illuminate\Http\Request; 
use App\Http\Requests; 
use App\Http\Controllers\Controller; 
use DB; 

class ItemsController extends Controller 
{ 
    public function search(Request $request) 
    { 
     var_dump($request->all()); // returns: array(0) { } 
    } 
} 

Как я могу получить доступ к сообщению данных в управлении после перенаправления?

+0

Просто переместил логику в контроллер и мне не нужно перенаправить больше. Спасибо Майку. –

ответ

1

Метод withInput добавляет ввод в сеанс. Вы можете получить доступ к нему в контроллере, используя $request->session->all().

Это означает, что более RESTful способ сделать это - иметь один маршрут /items, а в вашем контроллере вы решаете, следует ли фильтровать результаты на основе входных параметров или нет.

+0

'$ request-> session-> all()' возвращает 'Вызов функции-члена all() для не-объекта' –

+0

Хорошо, я полностью переведу логику на контроллер. Благодаря! –

+0

Вы делаете это в контроллере? [См. Здесь для использования] (http://laravel.com/docs/master/session#basic-usage) –

0

Попробуйте

return redirect()->route('/items/search')->withInput(); 
+0

Пробовал это раньше. Выдает сообщение об ошибке: InvalidArgumentException строка inrlGenerator.php 278: Маршрут [/ items/search] не определен. «Я знаю, это странно: / –

Смежные вопросы