私はドキュメントを上下に読んできましたが、私が間違っていることはまだ分かりません。私の意見では、初心者のためにドキュメントを理解することは非常に難しいです。ファサードとサービスプロバイダを理解することに若干の問題がある
とにかく、私はAuth::user()
メソッドに類似したものを作成しようとしています。このメソッドでは、このアプリケーションに必要なログインユーザーに関する追加データが返されます。
私はここで、このヘルパークラスを持っている:
namespace App\Helpers;
use Auth;
use Illuminate\Http\Request;
use App\Models\Grouping\User;
use App\Models\Grouping\Client;
use App\Models\Grouping\Rank;
class ClientUser {
public function __construct($request) {
$this->request = $request;
}
public function client() {
return Client::find($this->request->session()->get('client_id'));
}
public function auth() {
if (Auth::check()) {
// Get the client
$client = $this->client();
// Get the client's user
$user = $client->users()->find(Auth::user()['id']);
// Get the rank of the logged in user
$rank = Rank::find($user->pivot->rank_id);
return [
'user' => $user,
'rank' => $rank,
'client' => $client
];
}
return null;
}
}
これは私がAuth::user()
を介して取得することができない追加データを返す、私が説明した何をする責任があります。今、私はAuthServiceProvider
public function register()
{
// Register client auth
$request = $this->app->request;
$this->app->singleton(ClientUser::class, function ($app) {
return new ClientUser($request);
});
}
でこのクラスを登録しようとしている今、私は理解していないものを私はAuth::user()
のように私のアプリを通じて、これは世界的にアクセスできるようになってるかです。
"インポート"するだけで問題になるのは、リクエストオブジェクトが必要なためです。サービスオブジェクトを渡す理由です。
ここで私は立ち往生しています。私はコントローラーまたはどこでもapp
にアクセスすることができません.Faceadeはバインディングされたサービスの文字列を返すことを期待しているため、ファサードを定義することはできません。
の
'ClientUser => ClientUserFacade::class
alias
でキーを追加し、どのように私は、私は 'ClientUser ::ユーザーを()'行うことができ、この外のファサードを作るのですか? –