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

                企業??AI智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ### 框架有兩種方式實現sqlCURD操作: 查詢構造器和ORM ORM:就像名字叫的,對象關系映射,放在項目里面來看就是數據實體的model,也可以理解成持久化的類,使用oop思想。 查詢構造器:就常用的數據庫Query類方法,其實就是原生、pdo等的實現和使用,兩相比較的話,使用ORM更適合快速開發,例如,你使用laravel等框架,可以幾條命令就生成好對應的model和控制器了以及CURD操作了。具體使用,根據業務場景和自己熟悉程度取用就好。 ## **定義:** >[info] 單應用模式 > app/model/User.php ~~~ <?php namespace app\model; use think\Model; class User extends Model { // 模型初始化 protected static function init() { //TODO:初始化內容 } } ~~~ >[info] 多應用模式 > app/index/model/User.php ``` <?php namespace app\index\model; use think\Model; class User extends Model { // 模型初始化 protected static function init() { //TODO:初始化內容 } } ``` ## **獲取模型類** ``` //use app/index/model/User $user=new User(); ``` ## **常規屬性** ``` <?php namespace app\index\model; use think\Model; class User extends Model{ /** * 假設你在數據庫配置文件設置了數據表前綴prefix為think_,且模型類文件名與模型類名一致的情況下: * 模型名User(即User類)對應的表名think_user * 模型名UserType對應的表名是think_user_type * tp會優先選擇table屬性,當table屬性未被設置時用前綴與name屬性組裝表名 * * 如果你的模型名與你想要查詢的數據表名不一致請斟酌設置以下兩個屬性 * 如:你的模型名為User而你的數據表為think_member則設置如下 * */ //設置表名 protected $table = 'think_member'; //模型名 protected $name = 'user'; /** * 主鍵id Tp默認主鍵為id, * 如果你沒有使用id作為主鍵名,需要在這里設置真實的數據表id */ protected $pk = 'id'; /** * 設置當前模型的數據庫連接 connections下默認的為mysql * 將值改為db_config后則需要在配置文件增加db_config配置項 * database.php配置:'connections'=> ['mysql'=>[...],'db_config'=>[...]] * @var string */ protected $connection = 'db_config'; /** * 定義默認的表后綴(默認查詢中文數據) 幾乎不怎么用 * * 還可以是用suffix()查詢和setsuffix()動態設置 * suffix()動態查詢 * $blog = Blog::suffix('_en')->find(); * setSuffix用于動態設置 * $blog = new Blog($data); * $blog->setSuffix('_en')->save(); */ protected $suffix = '_cn'; /** * 是否嚴格區分字段(模型數據)大小寫,默認為true(不推薦) * 當設置為true時 $user->createTime;與$user->create_time;等效 * 默認為true時 當前$user對象屬性名與表字段一致才能調用成功 * @var boolean */ protected $strict = false; /** * 模型字段 與 字段類型 * 設置模型字段信息 模型的數據字段和對應數據表的字段是對應的,默認會自動獲取(包括字段類型), * 但自動獲取會導致增加一次查詢,因此你可以在模型中明確定義字段信息避免多一次查詢的開銷 * * schema屬性一旦定義,就必須定義完整的數據表字段類型 */ //模型字段 protected $schema = [ 'id' => 'int', 'name' => 'string', 'status' => 'int', 'score' => 'float', 'create_time' => 'datetime', 'update_time' => 'datetime', ]; // 設置字段自動轉換類型 實際的字段或者字段別名 protected $type = [ 'score' => 'float', ]; /** * 設置廢棄字段(忽略的字段) * @var [type] */ protected $disuse = [ 'status', 'type' ]; } ``` ## **模型方法依賴注入** 如果你需要對模型的方法支持依賴注入,可以把模型的方法改成閉包的方式,例如,你需要對獲取器方法增加依賴注入 ~~~ public function getTestFieldAttr($value,$data) { return $this->invoke(function(Request $request) use($value,$data) { return $data['name'] . $request->action(); }; } ~~~ 不僅僅是獲取器方法,在任何需要依賴注入的方法都可以改造為調用`invoke`方法的方式,`invoke`方法第二個參數用于傳入需要調用的(數組)參數。 如果你需要直接調用某個已經定義的模型方法(假設已經使用了依賴注入),可以使用 ~~~ protected function bar($name, Request $request) { // ... } protected function invokeCall(){ return $this->invoke('bar',['think']); } ~~~
                  <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>

                              哎呀哎呀视频在线观看