在laravel5.4中使用自定義的字段登錄姊舵,注冊(cè)的過程

在laravel5.4中使用自定義的字段登錄晰绎,注冊(cè)的過程

在使用laravel自帶的注冊(cè)登錄時(shí),默認(rèn)的登錄名是email,這個(gè)有的時(shí)候不能滿足需求括丁,下面是修改的步驟

  1. 首先想到使用php artisan route:list 查看現(xiàn)在項(xiàng)目的登錄荞下,注冊(cè)路由執(zhí)行的方法
                     |
|        | GET|HEAD                       | admin/login                                     | login                      | App\Http\Controllers\Auth\LoginController@showLoginForm                | web,guest                         |
|        | POST                           | admin/login                                     |                            | App\Http\Controllers\Auth\LoginController@login                        | web,guest                         |
|        | POST                           | admin/logout                                    | logout                     | App\Http\Controllers\Auth\LoginController@logout                       | web                               |
|        | GET|HEAD                       | admin/logout                                    |                            | App\Http\Controllers\Auth\LoginController@logout                       | web                               |
|        | POST                           | admin/password/email                            | password.email             | App\Http\Controllers\Auth\ForgotPasswordController@sendResetLinkEmail  | web,guest                         |
|        | GET|HEAD                       | admin/password/reset                            | password.request           | App\Http\Controllers\Auth\ForgotPasswordController@showLinkRequestForm | web,guest                         |
|        | POST                           | admin/password/reset                            |                            | App\Http\Controllers\Auth\ResetPasswordController@reset                | web,guest                         |
|        | GET|HEAD                       | admin/password/reset/{token}                    | password.reset             | App\Http\Controllers\Auth\ResetPasswordController@showResetForm        | web,guest                         |
|        | GET|HEAD                       | admin/register                                  | register                   | App\Http\Controllers\Auth\RegisterController@showRegistrationForm      | web,guest                         |
|        | POST                           | admin/register                                  |                            | App\Http\Controllers\Auth\RegisterController@register                  | web,gues

找到 admin/login 路由對(duì)應(yīng)的方法有兩個(gè)

App\Http\Controllers\Auth\LoginController@showLoginForm
App\Http\Controllers\Auth\LoginController@login

第一個(gè)方法是展示給用戶登錄頁面,第二個(gè)是提交用戶填寫的登錄信息。這兩個(gè)方法都在App\Http\Controllers\Auth\LoginController 內(nèi)尖昏,然后我就打開這個(gè)文件發(fā)現(xiàn)沒有找到這兩個(gè)方法仰税,注意到LoginController使用了use AuthenticatesUsers;就進(jìn)入AuthenticatesUsers找這兩個(gè)方法抽诉。

    public function showLoginForm() {
        return view('auth.login');
    }
    

這個(gè)方法可以改變登錄頁面

    public function login(Request $request) {
        $this->validateLogin($request);

        // If the class is using the ThrottlesLogins trait, we can automatically throttle
        // the login attempts for this application. We'll key this by the username and
        // the IP address of the client making these requests into this application.
        if ($this->hasTooManyLoginAttempts($request)) {
            $this->fireLockoutEvent($request);

            return $this->sendLockoutResponse($request);
        }

        if ($this->attemptLogin($request)) {
            return $this->sendLoginResponse($request);
        }

        // If the login attempt was unsuccessful we will increment the number of attempts
        // to login and redirect the user back to the login form. Of course, when this
        // user surpasses their maximum number of attempts they will get locked out.
        $this->incrementLoginAttempts($request);

        return $this->sendFailedLoginResponse($request);
    }
    

順藤摸瓜找到

    protected function validateLogin(Request $request) {
        $this->validate($request, [
            $this->username() => 'required', 'password' => 'required',
        ]);
    }

然后

    public function username() {
        return 'email';
    }

這里找到了登錄字段系統(tǒng)默認(rèn)返回的是email,本來直接將該字段修改為自己想要的字段就可以了陨簇,但是注意到該文件位于/vendor文件夾下,屬于第三方依賴不能直接修改迹淌。想到在引入trait的文件中重新定義和被引入trait文件中同名的方法時(shí)河绽,新方法會(huì)覆蓋掉trait中的方法。那么只要在LoginController中修改就可以了唉窃。

    /**
     * 登錄名
     */
    protected $username = '自定義字段';
    
    public function username() {
        return $this->username;
    }

這樣登錄的過程中就會(huì)使用自定義的字段了

登錄完成后同樣的去修改注冊(cè) 打開RegisterController ,修改下面兩個(gè)方法

    protected function validator(array $data) {
        return Validator::make($data, [
            '自定義字段' => 'required|max:255',
            'password' => 'required|min:6|confirmed',
        ]);
    }

    protected function create(array $data) {
        return User::create([
            '自定義字段' => $data['自定義字段'],
            'password' => bcrypt($data['password']),
        ]);
    }

修改完成后再去修改 登錄耙饰,注冊(cè)頁 表單里 用戶名 input的name, 修改成和自定義字段一直即可。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末纹份,一起剝皮案震驚了整個(gè)濱河市苟跪,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌矮嫉,老刑警劉巖,帶你破解...
    沈念sama閱讀 216,651評(píng)論 6 501
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件牍疏,死亡現(xiàn)場(chǎng)離奇詭異蠢笋,居然都是意外死亡,警方通過查閱死者的電腦和手機(jī)鳞陨,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 92,468評(píng)論 3 392
  • 文/潘曉璐 我一進(jìn)店門昨寞,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人厦滤,你說我怎么就攤上這事援岩。” “怎么了掏导?”我有些...
    開封第一講書人閱讀 162,931評(píng)論 0 353
  • 文/不壞的土叔 我叫張陵享怀,是天一觀的道長(zhǎng)。 經(jīng)常有香客問我趟咆,道長(zhǎng)添瓷,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,218評(píng)論 1 292
  • 正文 為了忘掉前任值纱,我火速辦了婚禮鳞贷,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘虐唠。我一直安慰自己搀愧,他們只是感情好,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,234評(píng)論 6 388
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著咱筛,像睡著了一般搓幌。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上眷蚓,一...
    開封第一講書人閱讀 51,198評(píng)論 1 299
  • 那天鼻种,我揣著相機(jī)與錄音,去河邊找鬼沙热。 笑死叉钥,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的篙贸。 我是一名探鬼主播投队,決...
    沈念sama閱讀 40,084評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼爵川!你這毒婦竟也來了敷鸦?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 38,926評(píng)論 0 274
  • 序言:老撾萬榮一對(duì)情侶失蹤寝贡,失蹤者是張志新(化名)和其女友劉穎扒披,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體圃泡,經(jīng)...
    沈念sama閱讀 45,341評(píng)論 1 311
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡碟案,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,563評(píng)論 2 333
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了颇蜡。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片价说。...
    茶點(diǎn)故事閱讀 39,731評(píng)論 1 348
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖风秤,靈堂內(nèi)的尸體忽然破棺而出鳖目,到底是詐尸還是另有隱情,我是刑警寧澤缤弦,帶...
    沈念sama閱讀 35,430評(píng)論 5 343
  • 正文 年R本政府宣布领迈,位于F島的核電站,受9級(jí)特大地震影響碍沐,放射性物質(zhì)發(fā)生泄漏惦费。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,036評(píng)論 3 326
  • 文/蒙蒙 一抢韭、第九天 我趴在偏房一處隱蔽的房頂上張望薪贫。 院中可真熱鬧,春花似錦刻恭、人聲如沸瞧省。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,676評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽鞍匾。三九已至交洗,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間橡淑,已是汗流浹背构拳。 一陣腳步聲響...
    開封第一講書人閱讀 32,829評(píng)論 1 269
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留梁棠,地道東北人置森。 一個(gè)月前我還...
    沈念sama閱讀 47,743評(píng)論 2 368
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像符糊,于是被迫代替她去往敵國(guó)和親凫海。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 44,629評(píng)論 2 354

推薦閱讀更多精彩內(nèi)容