国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專欄INFORMATION COLUMN

laravel5.1 -- 獲取用戶的登錄狀態(tài),事件、監(jiān)聽、中間件的簡單應(yīng)用

nicercode / 3588人閱讀

摘要:現(xiàn)在我們通過一個用戶登錄來講解一個事件,監(jiān)聽一個事件并觸發(fā)一些操作的全過程。首先,在中注冊事件與監(jiān)聽器之間的映射關(guān)系。在中,我們把用戶狀態(tài)分為,,根據(jù)登錄用戶的不同狀態(tài)來顯示出不同的內(nèi)容。

事件存在很多方面,比如登錄、購買商品、搜索、查看文章等等。 監(jiān)聽器監(jiān)聽到事件發(fā)生后,會執(zhí)行一些操作。Laravel使用觀察者模式來實現(xiàn)這種監(jiān)聽機制。 現(xiàn)在我們通過一個用戶登錄來講解一個事件,監(jiān)聽一個事件并觸發(fā)一些操作的全過程。

Registering Events / Listeners

首先,在App/Providers/EventServiceProvider.php中注冊事件與監(jiān)聽器之間的映射關(guān)系。下面的三個映射關(guān)系中我們只用到了LoginEventLoginSuccess

protected $listen = [
    "AppEventsLoginEvent" => ["AppListenersLoginSuccess"],
    "AppEventsLogoutEvent" => ["AppListenersLogoutSuccess"],
    "AppEventsUserAccess" => ["AppListenersUserAccess"]
];

然后,在根目錄下執(zhí)行artisan

$ php artisan event:generate

執(zhí)行命令成功后,分別會在App/EventsAppListeners下生成App/Events/LoginEventApp/Listeners/LoginSuccessphp文件

定義事件類

LoginEvent事件中什么都沒有改動,也不需要改動

定義監(jiān)聽器

現(xiàn)在在App/Listeners中有了一個LoginSuccess.php監(jiān)聽器,為了以后方面,我們在App/Listeners中新建一個基礎(chǔ)的監(jiān)聽類ListenerBase.php

statut = new Statut;
    }
}
?>

ListenerBase.php中實例化了一個Statut類,這個Statut類在App/Services文件夾下,下面我們會用到。


現(xiàn)在來到App/Listeners/LoginSuccess.php

statut->setLoginStatut($event);
    }
}

LoginSuccess繼承了ListenerBase, handle方法中$this->statut->setLoginStatut獲取了登錄用戶的狀態(tài)

Statut.php

App/Services中新建php文件Statut.php,再此文件中,主要定義了獲取當前登錄用戶的狀態(tài)的幾個方法,當觸發(fā)事件后,會執(zhí)行Statut.php文件中的操作

put("statut", auth()->user()->role->slug);//auth()->user()在用戶登錄完成后才會有值
    }

    /**
    * Set visitor statut
    *
    * @return void
    */
    public function setVisitorStatut(){
        session()->put("statut", "visitor");
    }

    /**
    * Set the statut
    *
    * @return void
    */
    public function setStatut(){
        if(!session()->has("statut")){
            session()->put("statut", auth()->check() ? auth()->user()->role->slug : "visitor");
        }
    }
}
?>

好了,事件和監(jiān)聽器完成之后,就需要觸發(fā)操作了,這里我們用中間件(Middleware)

Defining Middleware

使用artisan命令來創(chuàng)建中間件 App/Http/Middleware/App.php

$ php artisan make:middleware App

執(zhí)行成功后,使用全局方法event


最后,再將App中間件注冊到kernel.php中


完成上面的操作后,就可以獲取用戶的登錄狀態(tài)了。在Statut.php中,我們把用戶狀態(tài)分為visitoradmin,user,根據(jù)登錄用戶的不同狀態(tài)來顯示出不同的內(nèi)容。例如,如果是admin,則他可以進入后臺并執(zhí)行一些操作,如果是user或者visitor,那么他只能瀏覽一些頁面


總結(jié):

了解自己想要做什么,達到什么樣的目的,操作的過程中,思路應(yīng)清晰。


文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://specialneedsforspecialkids.com/yun/22578.html

相關(guān)文章

  • laravel5.1 -- 獲取用戶登錄狀態(tài)事件監(jiān)聽間件簡單應(yīng)用

    摘要:現(xiàn)在我們通過一個用戶登錄來講解一個事件,監(jiān)聽一個事件并觸發(fā)一些操作的全過程。首先,在中注冊事件與監(jiān)聽器之間的映射關(guān)系。在中,我們把用戶狀態(tài)分為,,根據(jù)登錄用戶的不同狀態(tài)來顯示出不同的內(nèi)容。 事件存在很多方面,比如登錄、購買商品、搜索、查看文章等等。 監(jiān)聽器監(jiān)聽到事件發(fā)生后,會執(zhí)行一些操作。Laravel使用觀察者模式來實現(xiàn)這種監(jiān)聽機制。 現(xiàn)在我們通過一個用戶登錄來講解一個事件,監(jiān)聽一個...

    gityuan 評論0 收藏0
  • Laravel5.1 實現(xiàn)第三方登錄認證(包括微博、QQ、微信、豆瓣)

    摘要:目前支持的認證有。英文不好的同學比如我,下面是中文文檔通過擴展的,實現(xiàn)了很多第三方認證。國內(nèi)的有微博微信豆瓣。至于和的具體值,這個是由新浪微博分發(fā)給你的,在新浪微博的授權(quán)回調(diào)頁中填寫。 前言 第三方登錄認證能簡化用戶登錄/注冊的操作,降低用戶登錄/注冊的門檻,對提高應(yīng)用的用戶轉(zhuǎn)化率很有幫助。 Socialite Laravel 為我們提供了簡單、易用的方式,使用 Laravel Soc...

    nifhlheimr 評論0 收藏0
  • 關(guān)于laravel5.1安裝心得

    摘要:完全沒有基礎(chǔ)的人基本上很難安裝并使用成功。目錄用于存放的依賴包。開啟訪問即可看到有的字樣出現(xiàn),代表安裝配置成功。 最近開始開坑,玩php,而且laravel最近很熱門,所以就這樣了。小白php直接接觸框架真的不容易,以前python接觸的django框架看官網(wǎng)文檔覺得寫得勉強吧,不是太好看,直到看到laravel的文檔才知道什么叫變態(tài)。完全沒有基礎(chǔ)的人基本上很難安裝并使用成功。而且即使...

    vibiu 評論0 收藏0
  • React專題:react,redux以及react-redux常見一些面試題

    摘要:我們可以為元素添加屬性然后在回調(diào)函數(shù)中接受該元素在樹中的句柄,該值會作為回調(diào)函數(shù)的第一個參數(shù)返回。使用最常見的用法就是傳入一個對象。單向數(shù)據(jù)流,比較有序,有便于管理,它隨著視圖庫的開發(fā)而被概念化。 面試中問框架,經(jīng)常會問到一些原理性的東西,明明一直在用,也知道怎么用, 但面試時卻答不上來,也是挺尷尬的,就干脆把react相關(guān)的問題查了下資料,再按自己的理解整理了下這些答案。 reac...

    darcrand 評論0 收藏0

發(fā)表評論

0條評論

最新活動
閱讀需要支付1元查看
<