1
我一直在閱讀文檔上下,現在仍然不知道我做錯了什麼。在我看來,初學者很難理解文檔。瞭解外牆和服務提供商有一些困難
無論如何,我試圖做一些類似於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
,而且我無法定義Facade,因爲Facade希望您返回應該「別名」的綁定服務的字符串。
這仍然沒有解決我的困惑
alias
關鍵,如何使一個門面出這個,所以我可以做'ClientUser ::用戶()'? –