Ich glaube, Ihre Frage letztlich dazu werden eingekocht:
Wo kann ich ein langlebiger Wert, auf den in meiner Anwendung global zugegriffen werden kann?
Die offensichtliche Antwort ist, dass es abhängt. Worauf es ankommt sind ein paar Faktoren:
- Wird der Wert jemals anders sein oder wird es für alle gleich sein?
- Wie lange genau ist langlebig? (Für immer? Ein Tag? Ein Browsing ‚session‘?)
Config
Wenn der Wert für alle gleich und wird nur selten ändern, der beste Ort, wahrscheinlich um es in einer Konfiguration ist Datei irgendwo unter app/config
, z app/config/companyname.php
:
<?php
return [
'somevalue' => 10,
];
Sie diesen Wert von überall in Ihrer Anwendung zugreifen können über Config::get('companyname.somevalue')
Session
Wenn der Wert, den Sie speichern beabsichtigen, wird verschiedene für jeden Benutzer sein Der logischste Ort ist Session
. Darauf beziehen Sie sich in Ihrer Frage, aber Sie verwenden falsche Syntax.Die korrekte Syntax eine Variable in Session zu speichern ist:
Session::put('somekey', 'somevalue');
Die korrekte Syntax es aus abzurufen zurück später:
Session::get('somekey');
Soweit wenn diese Operationen durchzuführen, das ist ein wenig wie du willst. Ich würde wahrscheinlich ein route filter wenn auf Laravel 4.x oder Middleware bei Verwendung von Laravel wählen 5. Unten ist ein Beispiel einer Route-Filter zu verwenden, die eine andere Klasse mit dem Wert tatsächlich kommen nutzt:
// 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'))
;
});
, die illegal PHP ist. Die linke Seite einer Zuweisungsoperation kann kein Ausdruck sein. 'set()' ist ein Funktions-/Methodenaufruf - es kann nur einen Wert zurückgeben, dem Sie keinen Wert zuweisen können. –
Dies ist hier sehr gut dokumentiert: http://laravel.com/docs/5.0/session – baao