使用靜態背景下得到保護(門面)下面的代碼工作:如何不外牆(不帶靜電)
$result = Auth::attempt(Input::only('email', 'password'));
比方說,我想,以減少靜態上下文到最小(這被認爲是可能的Laravel )。
我正在做一個小的妥協,並獲得了應用程序的引用:
/* @var $app Illuminate\Foundation\Application */
$app = App::make("app");
...然後拿到AUTH經理:
/* @var $auth \Illuminate\Auth\AuthManager */
$auth = $app->get("auth");
現在的問題:AuthManager
已沒有attempt
方法。 Guard
呢。唯一的問題是:Guard在IoC容器中沒有約束力。那麼如何獲得它?
我是否需要在路由器中使用一些魔術來實現這個功能?如果我添加一個參數給我的構造函數,我得到'ReflectionException'消息'Class Illuminate \ Contracts \ Auth \ Guard does not exist',如果我將它添加到控制器方法中,我得到了'參數1傳遞給RpcController :: get ()必須是Illuminate \ Contracts \ Auth \ Guard的一個實例,沒有給出(我正在使用Laravel 4)。 – vbence 2015-02-09 14:42:57
Whops - 對不起 - 我在想Laravel 5 – Laurence 2015-02-09 14:49:04
回覆更新爲L4 – Laurence 2015-02-09 14:50:22