laravelこの方法でセッションで変数を設定したい
Session::set('variableName')=$value;
問題は、このコードをどこに置くかわからないことです。「一度だけ設定したいので(ゲストがホームページや他のページにアクセスしたとき)?主なアイデアは、グローバル変数を使用してすべてのアプリケーションコントローラーで使用することです。構成変数に関連する何かについて聞いたことがありますが、構成変数またはセッションのみを使用するのが良いアイデアかどうかわかりませんか?ありがとう
これの正しい構文は...
Session::set('variableName', $value);
変数を取得するには、次を使用します...
Session::get('variableName');
一度設定する必要がある場合は、正確に設定するタイミングを把握し、イベントを使用して設定します。たとえば、誰かがログインしたときに設定したい場合は、次を使用します...
Event::listen('auth.login', function()
{
Session::set('variableName', $value);
});
あなたの質問は最終的にこれに要約できると思います:
アプリケーション内でグローバルにアクセス可能な、長期間有効な値をどこで設定できますか?
明らかな答えは、それが依存するということです。依存する要因はいくつかあります:
Config
値がすべての人で同じで、めったに変更されない場合、おそらく配置するのに最適な場所は、_app/config
_の下のどこかにある構成ファイルです。 _app/config/companyname.php
_:
_<?php
return [
'somevalue' => 10,
];
_
Config::get('companyname.somevalue')
を介してアプリケーションのどこからでもこの値にアクセスできます
セッション
格納しようとしている値が各ユーザーに対してdifferentになる場合、それを配置する最も論理的な場所はSession
です。これはあなたの質問で暗示するものですが、間違った構文を使用しています。 Sessionに変数を保存する正しい構文は次のとおりです。
_Session::put('somekey', 'somevalue');
_
後で取り出すための正しい構文は次のとおりです。
_Session::get('somekey');
_
whenがこれらの操作を実行する限り、それはあなた次第です。 on Laravel 4.xまたは Middleware を使用する場合は、おそらく route filter を選択します。 Laravel 5.以下は、別のクラスを活用して実際に値を算出するルートフィルターの使用例です。
_// 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'))
;
});
_
Laravel 5.6では、次のように設定する必要があります。
session(['variableName'=>$value]);
取得するのは簡単です
$variableName = session('variableName')
in Laravel 5.4
この方法を使用します。
Session::put('variableName', $value);
たとえば、セッションにデータを保存するには、通常put
methodまたはsession
ヘルパーを使用します。
// Via a request instance...
$request->session()->put('key', 'value');
または
// Via the global helper...
session(['key' => 'value']);
セッションからアイテムを取得するには、get
を使用できます。
$value = $request->session()->get('key', 'default value');
またはグローバルsession
ヘルパー:
$value = session('key', 'default value');
セッションにアイテムが存在するかどうかを判断するには、has
メソッドを使用できます。
if ($request->session()->has('users')) {
//
}
あなたが試すことができます
Session::put('variable_Name', "Your Data Save Successfully !");
Session::get('variable_Name');
上記の回答に追加するには、次のように関数を定義してください。
public function functionName(Request $request) {
//
}
「(Request $ request)」に注意し、次のようにセッションを設定します。
$request->session()->put('key', 'value');
そして、この方法でセッションを取得します。
$data = $request->session()->get('key');
セッションを消去するには、これを試してください:
$request->session()->forget('key');
または
$request->session()->flush();