2013-09-26 3 views
2

Я имею ReportController индекса, который будет перенаправлен в POST толькоLaravel: перенаправлять на другой контроллер, который требует POST переменных

public function index() // must have start, end, client 
{ 
    $start = Input::get('start'); // <<< This are POST variables 
    $end = Input::get('end'); // <<< This are POST variables 
    $client = Input::get('client'); This are POST variables 

    db request... output view.. 

} 

, когда я нажимаю "удалить строку", то отправлять данные в

public function deleteRow() 
{ 
    db request -> delete(); 
    //How do I go back to index controller and pass same $_POST['start'],$_POST['end'],$_POST['client'] 
} 

Как мне вернуться к контроллеру индекса и передать те же $ _POST ['start'], $ _ POST ['end'], $ _ POST ['client']?

+0

http://laravel.com/docs/requests#old-input –

ответ

2

Вы можете быть в состоянии использовать Redirect::to('url')->withInput()

Тогда вы можете использовать Input::get('key')

Если это не сработает, попробуйте Input::old('key') -> Менее довольно

+0

withInput() + Input :: старый работал только ошибка, когда я нажимаю обновление страницы, он теряет данные. Спасибо за помощь! – LushSoftware

+0

Да, поскольку withInput() предположительно только «перематывает» ваши данные на следующий запрос, он сохраняется только для одного хорошего следующего запроса. – JofryHS

+1

Также подумайте о принятии этого ответа, чтобы он помог кому-то другому с подобной проблемой в будущем. – JofryHS

2

Ваши почтовые переменные больше не доступны, как только вы сделайте другой запрос к методу deleteRow из представления, поэтому вам необходимо передать эти переменные методу deleteRow. Вы построить view/ui из метода index как

public function index() // must have start, end, client 
{ 
    $start = Input::get('start'); 
    $end = Input::get('end'); 
    $client = Input::get('client'); 

    db request... output view.. // <-- Outputs view with "delete row" link 
} 

Надежда, вы передаете эти post переменные в этой точке зрения, если нет, то передать эти переменные в этой точке зрения и построить delete row связь с этими variables, что-то вроде

"ReportController/deleteRow/$start/$end/$client" // just an idea 

это означает, что ваш метод deleteRow должен теперь выглядеть (также вносить изменения в маршрутизации этого)

public function deleteRow($start, $end, $client) 
{ 
    // db request -> delete(); 
    return Redirect::to('index') 
    ->with('postVars', array('start' => $start, '$end' => $end, 'client', $client)); 
} 

Итак, ясно, что вам необходимо передать эти переменные методу deleteRow, и именно поэтому deleteRow методы route должны быть восстановлены в соответствии с params. Так, в конце концов, ваш метод index должен выглядеть

public function index() // must have start, end, client 
{ 
    $postVars = session::has('postVars') ? session::get('postVars') : Input:all(); 
    $start = $postVars['start']; 
    $end = $postVars['end']; 
    $client = $postVars['client']; 

    db request... output view.. 

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