2016-03-09 2 views
3

То, что я пытался сделать, это отправить параметр как входное значение и перенаправить с Laravel 5.2.Laravel 5 - withInput не работает при использовании с перенаправлением

Я ссылался на официальную документацию, некоторые публикации на Stackoverflow и Laracast, и вот мои попытки.

//This controller function is run by a POST method and gets an input value 
public function makeCustomerId() 
{ 
    return redirect('next') 
     ->withInput(); 
} 

Ниже приводится следующая попытка, основанная на документации.

(Значение ввода может быть получено $this->request->input('id', ''))

public function makeCustomerId() 
{ 
    return redirect() 
     ->action('[email protected]', ['inputId' => $this->request->input('id', '')]); 
} 

Я использовал функцию dd() для отладки контроллеров, но ничего не было послано для обоих случаев.

Вы видите что-то, что я делаю неправильно? Любые советы будут оценены!

EDIT

добавить больше информации.

Контроллер, указанный выше, запускается из следующих form. В итоге это приведет к [email protected].

<form action="{{url('makeCustomerId')}}" method="POST"> 
      <select name="id"> 
       @foreach ($teams as $team) 
       <option value="{{$team->id}}">{{$team->id}}</option> 
       @endforeach 
      </select> 
      <br> 
      <input type="submit" value="Submit"> 
    </form> 

Может быть, это неясно, но входной параметр ($this->request->input('id', '')) соответствует $team->id.

Ниже приведен пример использования $this->request. В двух словах, это инъекции зависимостей, а это означает, что я использую request класс из любого места в классе контроллера, $this->request

use Illuminate\Http\Request; 

class PageController extends Controller { 
protected $request; 

    public function __construct(Request $request) 
    { 
     $this->request = $request; 
    } 

} 
+0

Каков путь к PageController @ showNextPage действия? Включает ли он параметр param 'inputId'? – blablabla

+0

Спасибо за ваш ответ. Я добавил дополнительную информацию, надеясь, что это то, что вы имеете в виду. – Hiroki

+0

А что такое '$ this-> request'? Как вы его назначаете и из какого пространства имён? –

ответ

1

Когда вы звоните:

return redirect() 
    ->action('[email protected]', ['inputId' => $this->request->input('id', '')]); 

то, что вы по сути делаете делает новый запрос с адресом 'inputId'. Так что в вашем методе showNextPage вы также должны получить доступ к 'inputId', говоря что-то вроде этого:

public function showNextPage() 
{ 
    $id = $this->request->input('inputId'); 

    // do stuff 
    // return next page 
} 
+0

Большое вам спасибо. Исправлена! – Hiroki

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