0

Cartalyst Sentinel を使用して、Laravel 5.1 で認証とロールを管理しています。最初にパッケージをダウンロードし、追加のクエリ スコープを追加し、vendor/../EloquentUser クラスでリレーションを定義していました。Composer は今日パッケージを更新し、当然、すべてのコードが削除されました。その時点で、EloquentUser を拡張した独自の User クラスが必要であり、公開された構成ファイルを変更して独自の User クラスを使用する必要があることに気付きました。ただし、Sentinel は /vendor ディレクトリ内の構成ファイルを使用しているようです。これは、ユーザー モデルを使用するように変更すると機能するためです。つまり、クエリ スコープと関係がユーザーに対して機能し始めます。しかし、公開された構成を変更しても、アプリケーションには影響しません。

Codeigniter から来た Laravel と作曲家、そしてすべてにかなり慣れていないので、セットアップ中に何か間違ったことをしたり、めちゃくちゃになったりしているのかもしれません。

4

2 に答える 2

2

Laravel を使用したセットアップの手順は次のとおりです。

https://cartalyst.com/manual/sentinel/2.0#laravel-5

Laravel 5.1の場合、いくつかの変更を加えました

config/app.php を編集します。

$providers 配列

Cartalyst\Sentinel\Laravel\SentinelServiceProvider::class,

$aliases 配列

'Activation' => Cartalyst\Sentinel\Laravel\Facades\Activation::class,
'Reminder'   => Cartalyst\Sentinel\Laravel\Facades\Reminder::class,
'Sentinel'   => Cartalyst\Sentinel\Laravel\Facades\Sentinel::class,

このコマンドを実行して、必要な移行とアプリケーション構成をプロジェクト フォルダーに公開します。

php artisan vendor:publish --provider="Cartalyst\Sentinel\Laravel\SentinelServiceProvider"

ここでEloquent Userを拡張する方法を文書化しました

http://naomiaro.com/2015/07/08/multiple-login-attributes-with-sentinel-and-laravel/

use Cartalyst\Sentinel\Users\EloquentUser as SentinelUser;

class User extends SentinelUser {

}

公開された構成ファイル config/cartalyst.sentinel.php で、使用しているユーザー モデルを Sentinel に伝えます。

'users' => [

    'model' => 'Namespace\User',

],
于 2015-07-22T06:42:26.640 に答える
0

さて、私はしばらくLaravelをいじっていて、それがどのようにうまく機能するかを知りました.

私が犯した間違いは、ファイルの先頭にこのステートメントを含めていたことです (正直なところ、Cartalyst のドキュメントにはそうありました。初心者には誤解を招くと思います)。

use Cartalyst\Sentinel\Native\Facades\Sentinel;

そして、次のことを行います:

Sentinel::getUser();

したがって、明らかに、ベンダー (ネイティブ) フォルダー内の構成ファイルを参照していました。

正しい方法は、Sentinel Facade を上部で使用することです。

use Sentinel;

次に、公開された構成ファイルを参照します。

これが同じ間違いを犯した他の初心者に役立つことを願っています. :)

于 2015-08-05T18:49:11.940 に答える