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

資訊專欄INFORMATION COLUMN

Laravel 模型事件的應(yīng)用

ralap / 570人閱讀

摘要:在日常處理一些用戶操作事件時(shí),我們有時(shí)候需要記錄下來,方便以后查閱,或者大數(shù)據(jù)統(tǒng)計(jì)。

在日常處理一些用戶操作事件時(shí),我們有時(shí)候需要記錄下來,方便以后查閱,或者大數(shù)據(jù)統(tǒng)計(jì)。


Laravel 在模型事件中處理起來很方便:https://laravel-china.org/docs/laravel/5.5/eloquent#events


Laravel 的模型事件有兩種方式,

設(shè)置dispatchesEvents屬性映射事件類

使用觀察器來注冊(cè)事件,這里介紹第二種

新建模型

php artisan make:model Log


創(chuàng)建遷移表:

php artisan make:migration create_logs_table

表的結(jié)構(gòu)大概是這樣,可按需設(shè)計(jì)

engine = "InnoDB";
            $table->increments("id");
            $table->string("user_id")->comment("操作人的ID");
            $table->string("user_name")->comment("操作人的名字,方便直接查閱");
            $table->string("url")->comment("當(dāng)前操作的URL");
            $table->string("method")->comment("當(dāng)前操作的請(qǐng)求方法");
            $table->string("event")->comment("當(dāng)前操作的事件,create,update,delete");
            $table->string("table")->comment("操作的表");
            $table->string("description")->default("");
            $table->timestamps();
        });

        DB::statement("ALTER TABLE `logs` comment "操作日志表"");
    }

    /**
     * Reverse the migrations.
     *
     * @return void
     */
    public function down()
    {
        Schema::dropIfExists("logs");
    }
}

運(yùn)行遷移生成表

php artisan migrate

新建一個(gè)服務(wù)提供者統(tǒng)一注冊(cè)所有的模型事件觀察器(后面的名字可以自己起得形象一點(diǎn))

php artisan make:provider ObserverLogServiceProvider

/config/app.php中的providers數(shù)組注冊(cè)(大概如圖中)

app目錄下新建文件夾Observers存放模型觀察器,并新建基類LogBaseServer并在構(gòu)造函數(shù)構(gòu)建基本屬性(CLI是因?yàn)樵诿钚袌?zhí)行時(shí)不存在用戶執(zhí)行)

新建一個(gè)觀察器繼承基類LogBaseServerUser模型,方法的名字要對(duì)應(yīng)文檔中的事件)

到新建的服務(wù)提供者ObserverLogServiceProvider中運(yùn)行

為需要的模型注冊(cè)事件(我這挺多的,之后大概長(zhǎng)這樣)

然后我們觸發(fā)一些事件(增刪改,表的數(shù)據(jù)就有了)


多對(duì)多的關(guān)聯(lián)插入不會(huì)出觸發(fā)模型(比如attach方法)

這時(shí)候就需要自己新建事件類來模擬(這里拿分配權(quán)限給角色粗略說一下)

1.在EventServiceProvider中的listen屬性綁定好事件

2.事件PermissionRoleEvent中的注入兩個(gè)參數(shù),一個(gè)是角色,另一個(gè)是attach或者detach返回的數(shù)組

3.事件監(jiān)聽器PermissionRoleEventLog也繼承基類LogBaseServer,這里就是根據(jù)傳入的數(shù)組id遍歷,然后創(chuàng)建日志

4.之后應(yīng)用事件


更優(yōu)雅的處理登錄注銷事件

1.在EventServiceProvider中的subscribe屬性綁定好處理的類

2.事件監(jiān)聽類的方法

3.之后的效果就是這樣了:

END
原文地址

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

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

相關(guān)文章

  • Laravel深入學(xué)習(xí)6 - 應(yīng)用體系結(jié)構(gòu):解耦事件處理器

    摘要:別堵塞了傳輸層大多數(shù)事件處理器被當(dāng)作傳輸層組件。解耦事件處理器開始本命題前,我們來使用一個(gè)示例。假想下把隊(duì)列處理器用來發(fā)送消息給用戶。盡量避免在事件處理器中摻雜太多的業(yè)務(wù)邏輯。 聲明:本文并非博主原創(chuàng),而是來自對(duì)《Laravel 4 From Apprentice to Artisan》閱讀的翻譯和理解,當(dāng)然也不是原汁原味的翻譯,能保證90%的原汁性,另外因?yàn)槭抢斫夥g,肯定會(huì)有錯(cuò)誤的...

    HackerShell 評(píng)論0 收藏0
  • Laravel深入學(xué)習(xí)5 - 應(yīng)用架構(gòu)

    摘要:控制只是用來接收請(qǐng)求并請(qǐng)求邏輯處理類。事實(shí)上,業(yè)務(wù)邏輯無需感知網(wǎng)絡(luò),網(wǎng)絡(luò)僅僅接入應(yīng)用的傳輸機(jī)制,他不應(yīng)超出應(yīng)用中的路由和控制器的范疇。職責(zé)分離是編寫健壯應(yīng)用的關(guān)鍵。其他通常,類庫(kù)應(yīng)該以規(guī)范組織在我們的應(yīng)用中。 聲明:本文并非博主原創(chuàng),而是來自對(duì)《Laravel 4 From Apprentice to Artisan》閱讀的翻譯和理解,當(dāng)然也不是原汁原味的翻譯,能保證90%的原汁性,另...

    lixiang 評(píng)論0 收藏0
  • Laravel Telescope:優(yōu)雅應(yīng)用調(diào)試工具

    摘要:文章轉(zhuǎn)自視頻教程優(yōu)雅的應(yīng)用調(diào)試工具新擴(kuò)展是由和開源的應(yīng)用的調(diào)試工具。計(jì)劃任務(wù)列出已運(yùn)行的計(jì)劃任務(wù)。該封閉函數(shù)會(huì)被序列化為一個(gè)長(zhǎng)字符串,加上他的哈希與簽名如出一轍該功能將記錄所有異常,并可查看具體異常情況。事件顯示所有事件的列表。 文章轉(zhuǎn)自:https://laravel-china.org/topics/19013視頻教程:047. 優(yōu)雅的應(yīng)用調(diào)試工具--laravel/telesco...

    MasonEast 評(píng)論0 收藏0
  • Laravel 模型事件入門

    摘要:我們?cè)O(shè)置好模型的觸發(fā)時(shí)機(jī),當(dāng)模型觸發(fā)事件,監(jiān)聽器就會(huì)被調(diào)。雖然,我能通過模型觀察器快速實(shí)現(xiàn),但是,我想引導(dǎo)你為單個(gè)事件觸發(fā)配置事件監(jiān)聽器。現(xiàn)在,當(dāng)模型調(diào)用事件時(shí),我們注冊(cè)的事件監(jiān)聽器也會(huì)被觸發(fā)并執(zhí)行。 showImg(https://segmentfault.com/img/remote/1460000014033990); Laravel 模型事件允許你監(jiān)聽模型生命周期內(nèi)的多個(gè)關(guān)鍵點(diǎn)...

    DandJ 評(píng)論0 收藏0
  • Laravel模型事件與 Observer

    摘要:模型事件在的世界中你對(duì)大多數(shù)操作都會(huì)或多或少的觸發(fā)一些模型事件今天就來看一下模型事件的使用。事先已經(jīng)定義好了個(gè)模型事件以供我們使用它們分別是。和會(huì)在數(shù)據(jù)庫(kù)中的真值修改前后觸發(fā)。監(jiān)聽數(shù)據(jù)即將保存的事件。監(jiān)聽數(shù)據(jù)從軟刪除狀態(tài)恢復(fù)后的事件。 模型事件 在 Laravel 的世界中,你對(duì) Eloquent 大多數(shù)操作都會(huì)或多或少的觸發(fā)一些模型事件,今天就來看一下模型事件的使用。 Laravel...

    Yuanf 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<