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

                ??一站式輕松地調用各大LLM模型接口,支持GPT4、智譜、豆包、星火、月之暗面及文生圖、文生視頻 廣告
                ### 2021 年 7 月 25 日 發布 最新版本的`ThinkORM`增加了一個虛擬模型功能,這個功能早在ThinkPHP`3.2`版本中出現過,但新版的虛擬模型功能更為強大。 在之前,如果需要進行虛擬模型操作的話,模型類就不能繼承`Model`類,然后封裝自己的業務邏輯,雖然也能滿足部分需求,但無法實現獲取器、修改器以及模型關聯的功能,比如: ~~~ <?php namespace app\model; class User { public function getInfo() { // 業務邏輯代碼 } } ~~~ 新版著重強化了虛擬模型,數據只能保存在內存中,而且只能通過實例化的方式來創建數據,虛擬模型可以保留模型的大部分功能,包括獲取器、模型事件,甚至是關聯操作,另外一方面也更方便單元測試。 要使用虛擬模型,只需要在模型定義的時候引入`Virtual` trait,例如: ~~~ <?php namespace app\model; use think\Model; use think\model\concern\Virtual; class User extends Model { use Virtual; public function getInfo() { // 業務邏輯代碼 } public function getStatusAttr($value) { $status = [-1=>'刪除',0=>'禁用',1=>'正常',2=>'待審核']; return $status[$value]; } public function setNameAttr($value) { return strtolower($value); } public function blog() { return $this->hasMany('Blog'); } } ~~~ 你不需要在數據庫中存在有對應的`user`表,但仍然可以進行相關數據操作,下面是一些簡單例子。 ``` // 創建數據 $data = [ 'id' => 8, 'name' => 'Think', 'status' => 1, ]; $user = User::create($data); // 獲取數據 (支持獲取器) echo $user->name; // 輸出 think // 修改數據 (支持修改器) $user->name = 'ThinkPHP'; // 實際數據變成 thinkphp // 保存數據到內存 并且調用模型事件 $user->save(); // 獲取關聯博客數據 $blog = $user->blog()->limit(3)->select(); // 刪除數據(同時刪除關聯博客數據) $user->together(['blog'])->delete(); ``` 由于虛擬模型沒有實際的數據表,所以你不能進行任何的查詢操作,下面的代碼就會拋出異常: ``` User::find(1); // 會拋出下面的異常 // virtual model not support db query ``` >[danger] 注意,虛擬模型不支持自動時間戳功能(但仍然支持時間字段格式化),如果需要時間字段需要在實例化的時候傳入。 如果有定義獲取器、修改器及模型事件的話,仍然有效,大家有時間可以測試下。
                  <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>

                              哎呀哎呀视频在线观看