私のサイトを移動すると、コントローラはセッションを利用できなくなりますが、セッションビューページを取得します。私の前のバージョンはlaravel 5.2でlaravel 5.3を動かすことでした。5.2から5.3への移動後にセッションが機能しない
私はどなたにでも助けてくれますか?
私のサイトを移動すると、コントローラはセッションを利用できなくなりますが、セッションビューページを取得します。私の前のバージョンはlaravel 5.2でlaravel 5.3を動かすことでした。5.2から5.3への移動後にセッションが機能しない
私はどなたにでも助けてくれますか?
これは、5.2から5.3へのアップグレードガイド、laravelドキュメントから直接です:
セッションLaravelの以前のバージョンではコンストラクタ
では、あなたはセッション変数またはで認証されたユーザーにアクセスすることができましたがあなたのコントローラのコンストラクタ。これは決してフレームワークの明白な特徴ではありません。 Laravel 5.3では、ミドルウェアがまだ実行されていないため、コントローラのコンストラクタでセッションまたは認証されたユーザにアクセスすることはできません。
代わりに、コントローラのコンストラクタでClosureベースのミドルウェアを直接定義することもできます。この機能を使用する前に、アプリケーションがLaravel 5.3.4実行している以上であることを確認してください。もちろん
<?php
namespace App\Http\Controllers;
use App\User;
use Illuminate\Support\Facades\Auth;
use App\Http\Controllers\Controller;
class ProjectController extends Controller
{
/**
* All of the current user's projects.
*/
protected $projects;
/**
* Create a new controller instance.
*
* @return void
*/
public function __construct()
{
$this->middleware(function ($request, $next) {
$this->projects = Auth::user()->projects;
return $next($request);
});
}
}
、あなたはまた、タイプヒンティングを照らしを\のHttp \要求によって要求セッションデータや認証されたユーザーにアクセスすることができます。あなたのコントローラアクションのクラス:
/**
* Show all of the projects for the current user.
*
* @param \Illuminate\Http\Request $request
* @return Response
*/
public function index(Request $request)
{
$projects = $request->user()->projects;
$value = $request->session()->get('key');
//
}
ありがとうございました。 –
あなたは大歓迎です! –