2017-01-29 3 views
1

У меня есть Route к моим CartController, как это:Laravel маршрут, кажется, установить мой переменный контроллер на нуль

Route::get('setDropDownIndex/{index}', '[email protected]'); 

И в моем CartController:

public function setDropDownIndex($index) 
{ 
    $this->dropDownIndex = $index; 
    //echo $this->dropDownIndex; 
    return redirect('cart'); 
} 

public function cart() 
{ 
$this->getPayPalOptions(); 

$data = array(
    'ppCode' => $this->ppCode, 
    'estOmnivaValue' => $this->estOmnivaValue, 
    'estSmartValue' => $this->estSmartValue, 
    'europeValue' => $this->europeValue, 
    'rowValue' => $this->rowValue, 
    'estOmnivaText' => $this->estOmnivaText, 
    'estSmartText' => $this->estSmartText, 
    'europeText' => $this->europeText, 
    'rowText' => $this->rowText, 
    'dropDownIndex' => $this->dropDownIndex 
); 

return View::make('pages.cart', ['active'=>'navCart'])->with($data); 
} 

The Route работает просто отлично, и я могу echo, чтобы подтвердить, что setDropDownIndex 'saves' $this->dropDownIndex должным образом. Проблема в том, что мой redirect10 до cart, кажется, уничтожает мой $this->dropDownIndex, установив его на нуль.

Я новичок в Laravel, может ли кто-нибудь сказать мне, как я могу «упорствовать» $this->dropDownIndex? Должен ли я использовать with, когда я перенаправляю?

ответ

1

Для сохранения значения $index вы можете использовать сеанс. иначе после перенаправления он перенаправляется на эти маршруты снова, он будет поступать в эту функцию тележки этого контроллера, и когда он достигнет cart(), тогда он не будет работать с функцией setDropDownIndex ($ index). так что ваша переменная не установлена ​​его лучше, что вы можете использовать с(), который является flash переменной сеанса, который можно использовать при следующем перенаправил запрос

return redirect('cart')->with('index', $index); 
+0

Спасибо! Это имеет смысл и работает как шарм :-) –

+0

Рад помочь @DaveChambers :) – Vikash

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