<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>

                ??碼云GVP開源項目 12k star Uniapp+ElementUI 功能強大 支持多語言、二開方便! 廣告
                ## 修改器 和獲取器相反,修改器的主要作用是對模型設置的數據對象值進行處理。 修改器方法的命名規范為: >[info] ### set`FieldName`Attr 修改器的使用場景和讀取器類似: * 時間日期字段的轉換寫入; * 集合或枚舉類型的寫入; * 數字狀態字段的寫入; * 某個字段涉及其它字段的條件或者組合寫入; 定義了修改器之后會在下列情況下觸發: * 模型對象賦值; * 調用模型的`data`方法,并且第二個參數傳入`true`; * 調用模型的`save`方法,并且傳入數據; * 顯式調用模型的`setAttr`方法; 例如: ~~~ <?php namespace app\model; use think\Model; class User extends Model { public function setNameAttr($value) { return strtolower($value); } } ~~~ 如下代碼實際保存到數據庫中的時候會轉為小寫 ~~~ $user = new User(); $user->name = 'THINKPHP'; $user->save(); echo $user->name; // thinkphp ~~~ 也可以進行序列化字段的組裝: ~~~ namespace app\model; use think\Model; class User extends Model { public function setSerializeAttr($value,$data) { return serialize($data); } } ~~~ > 修改器方法的第二個參數會自動傳入當前的所有數據數組。 如果你需要在修改器中修改其它數據,可以使用 ~~~ <?php namespace app\model; use think\Model; class User extends Model { public function setTestFieldAttr($value, $data) { $this->set('other_field', $data['some_field']); } } ~~~ 上面的例子,在`test_field`字段的修改器中修改了`other_field`字段數據,并且沒有返回值(表示不對`test_field`字段做任何修改)。 ## 批量修改 除了賦值的方式可以觸發修改器外,還可以用下面的方法批量觸發修改器: ~~~ $user = new User(); $data['name'] = 'THINKPHP'; $data['email'] = 'thinkphp@qq.com'; $user->data($data, true); $user->save(); echo $user->name; // thinkphp ~~~ 如果為`name`和`email`字段都定義了修改器的話,都會進行處理。 或者直接使用save方法觸發,例如: ~~~ $user = new User(); $data['name'] = 'THINKPHP'; $data['email'] = 'thinkphp@qq.com'; $user->save($data); echo $user->name; // thinkphp ~~~ >[danger] 修改器方法僅對模型的寫入方法有效,調用數據庫的寫入方法寫入無效,例如下面的方式修改器無效。 ~~~php $user = new User(); $data['name'] = 'THINKPHP'; $data['email'] = 'thinkphp@qq.com'; $user->insert($data); ~~~
                  <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>

                              哎呀哎呀视频在线观看