<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                ## 模型事件 模型事件是指在進行模型的寫入操作的時候觸發的操作行為,包括模型的`save`方法和`delete`方法。 >[danger] 模型事件只在調用模型的方法生效,使用查詢構造器操作是無效的 模型支持如下事件: |事件|描述|快捷方法| |---|---|---| |before_insert | 新增前 |beforeInsert| |after_insert | 新增后 |afterInsert| |before_update | 更新前 |beforeUpdate| |after_update| 更新后 |afterUpdate| |before_write| 寫入前 |beforeWrite| |after_write | 寫入后 |afterWrite| |before_delete | 刪除前 |beforeDelete| |after_delete | 刪除后 |afterDelete| |before_restore | 恢復前(`V5.1.13+`) |beforeRestore| |after_restore | 恢復后(`V5.1.13+`) |afterRestore| 使用方法如下: ~~~ <?php namespace app\index\model; use think\Model; class User extends Model { public static function init() { self::event('before_insert', function ($user) { if (1 != $user->status) { return false; } }); } } ~~~ 注冊的回調方法支持傳入一個參數(當前的模型對象實例),但支持依賴注入的方式增加額外參數。 并且`before_write`、`before_insert`、 `before_update` 、`before_delete`事件方法如果返回false,則不會繼續執行。 支持給一個位置注冊多個回調方法,例如: ~~~ User::event('before_insert', function ($user) { if ($user->status != 1) { return false; } }); // 注冊回調到beforeInsert函數 User::event('before_insert', 'beforeInsert'); ~~~ ## 快捷注冊 系統提供了內置的事件注冊的快捷方法,你可以統一在`init`方法中進行模型事件定義: ~~~ <?php namespace app\index\model; use think\Model; class User extends Model { protected static function init() { self::beforeInsert(function ($user) { if ($user->status != 1) { return false; } }); } } ~~~ ## 事件觀察者 `V5.1.13+`版本開始,可以給模型注冊一個事件觀察者,例如: ~~~ <?php namespace app\index\model; use think\Model; class User extends Model { protected $observerClass = 'app\index\event\User'; } ~~~ 或者在模型的`init`方法里面手動注冊 ~~~ <?php namespace app\index\model; use think\Model; class User extends Model { protected static function init() { self::observe(\app\index\event\User::class); } } ~~~ `User`觀察者類定義如下: ~~~ <?php namespace app\index\event; use app\index\model\Profile; class User { public function beforeUpdate($user) { if ('thinkphp' == $user->name) { return false; } } public function afterDelete($user) { Profile::destroy($user->id); } } ~~~ > 觀察者類的方法就是事件對應的方法名稱,方法的第一個參數就是模型對象實例,你依然可以通過依賴注入傳入其它的對象參數。
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看