Myślę, że pytanie może być ostatecznie sprowadza się do tego:
Gdzie mogę ustawić długowieczna wartość, która jest dostępna globalnie w mojej aplikacji?
Oczywistą odpowiedzią jest to, że to zależy. Zależy od tego kilka czynników:
- Czy wartość będzie inna, czy też będzie taka sama dla wszystkich?
- Jak długo dokładnie jest długowieczna? (Na zawsze? A Day? Jeden przeglądania „sesja”?)
Config
Jeśli wartość jest taka sama dla wszystkich i rzadko się zmieniają, najlepsze miejsce prawdopodobnie umieścić go w konfiguracji plik gdzieś pod app/config
, np app/config/companyname.php
:
<?php
return [
'somevalue' => 10,
];
Można uzyskać dostęp do tej wartości z dowolnego miejsca w aplikacji poprzez Config::get('companyname.somevalue')
Session
Jeżeli wartość masz zamiar sklepu będzie inny dla każdego użytkownika , najbardziej logicznym miejscem do umieszczenia go jest Session
. Oto, o czym wspominasz w swoim pytaniu, ale używasz niewłaściwej składni.Poprawna składnia do przechowywania zmiennej w sesji jest:
Session::put('somekey', 'somevalue');
poprawna składnia, aby odzyskać go z powrotem później jest:
Session::get('somekey');
miarę gdy do wykonywania tych czynności, to trochę zależy od Ciebie. Prawdopodobnie wybrać route filter jeśli na laravel 4.x lub Middleware przypadku korzystania laravel 5. Poniżej jest przykład przy użyciu filtra trasy, który wykorzystuje inną klasę rzeczywiście pochodzić z wartości:
// File: ValueMaker.php (saved in some folder that can be autoloaded)
class ValueMaker
{
public function makeValue()
{
return 42;
}
}
// File: app/filters.php is probably the best place
Route::filter('set_value', function() {
$valueMaker = app()->make('ValueMaker');
Session::put('somevalue', $valueMaker->makeValue());
});
// File: app/routes.php
Route::group(['before' => 'set_value'], function() {
// Value has already been 'made' by this point.
return View::make('view')
->with('value', Session::get('somevalue'))
;
});
że PHP jest nielegalne. lewa strona operacji przypisania nie może być wyrażeniem. 'set()' jest wywołaniem funkcji/metody - może tylko POWRÓCIĆ wartość, nie można jej przypisać. –
To jest bardzo dobrze udokumentowane tutaj: http://laravel.com/docs/5.0/session – baao