Laravel-session
Laravel-セッション
セッションは、リクエストに関するユーザーに関する情報を保存するために使用されます。 Laravelは、セッションファイルを処理するために、* file、cookie、apc、array、Memcached、Redis、、 *database などのさまざまなドライバーを提供します。 デフォルトでは、軽量であるため、ファイルドライバーが使用されます。 セッションは config/session.php に保存されているファイルで設定できます。
セッションデータへのアクセス
セッションデータにアクセスするには、HTTPリクエストを介してアクセスできるセッションのインスタンスが必要です。 インスタンスを取得したら、* get()メソッドを使用して、1つの引数“ key” *を取得し、セッションデータを取得できます。
$value = $request->session()->get('key');
- get()メソッドの代わりに all()*メソッドを使用してすべてのセッションデータを取得できます。
セッションデータの保存
- put()メソッドを使用して、データをセッションに保存できます。 * put()*メソッドは、“ key” と“ value” *の2つの引数を取ります。
$request->session()->put('key', 'value');
セッションデータの削除
- forget()メソッドは、セッションからアイテムを削除するために使用されます。 このメソッドは、引数として「キー」*を取ります。
$request->session()->forget('key');
すべてのセッションデータを削除するには、* forget()メソッドの代わりに flush()メソッドを使用します。 * pull()*メソッドを使用して、セッションからデータを取得し、後で削除します。 pull()メソッドも引数として *key を取ります。 * forget()メソッドと pull()メソッドの違いは、 forget()メソッドがセッションの値を返さず、 pull()*メソッドがそれを返してセッションからその値を削除することです。
例
ステップ1 *-次のコマンドを実行して、 *SessionController というコントローラーを作成します。
php artisan make:controller SessionController --plain
- ステップ2 *-実行が成功すると、次の出力が表示されます-
- ステップ3 *-次のコードをファイルにコピーします
app/Http/Controllers/SessionController.php。*
*app/Http/Controllers/SessionController.php*
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Http\Requests;
use App\Http\Controllers\Controller;
class SessionController extends Controller {
public function accessSessionData(Request $request) {
if($request->session()->has('my_name'))
echo $request->session()->get('my_name');
else
echo 'No data in the session';
}
public function storeSessionData(Request $request) {
$request->session()->put('my_name','Virat Gandhi');
echo "Data has been added to session";
}
public function deleteSessionData(Request $request) {
$request->session()->forget('my_name');
echo "Data has been removed from session.";
}
}
ステップ4 *- *app/Http/routes.php ファイルに次の行を追加します。
*app/Http/routes.php*
Route::get('session/get','SessionController@accessSessionData');
Route::get('session/set','SessionController@storeSessionData');
Route::get('session/remove','SessionController@deleteSessionData');
ステップ5 *-次のURLにアクセスして、*セッションでデータを設定します。
http://localhost:8000/session/set
- ステップ6 *-出力は次の画像のように表示されます。
ステップ7 *-次のURLにアクセスして、*セッションからデータを取得します。
http://localhost:8000/session/get
- ステップ8 *-出力は次の画像のように表示されます。
ステップ9 *-次のURLにアクセスして、*セッションデータを削除します。
http://localhost:8000/session/remove
- ステップ10 *-次の画像に示すようなメッセージが表示されます。