<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智能體構建引擎,智能編排和調試,一鍵部署,支持知識庫和私有化部署方案 廣告
                ## 模型定義 為了更好的理解,我們首先在數據庫創建一個`think_user`表如下: ``` <pre class="calibre18"> ``` <span class="hljs-operator"><span class="hljs-keyword">CREATE</span> <span class="hljs-keyword">TABLE</span> <span class="hljs-keyword">IF</span> <span class="hljs-keyword">NOT</span> <span class="hljs-keyword">EXISTS</span> <span class="hljs-string">`think_user`</span>( <span class="hljs-string">`id`</span> <span class="hljs-number">int</span>(<span class="hljs-number">8</span>) <span class="hljs-keyword">unsigned</span> <span class="hljs-keyword">NOT</span> <span class="hljs-number">NULL</span> AUTO_INCREMENT, <span class="hljs-string">`nickname`</span> <span class="hljs-number">varchar</span>(<span class="hljs-number">50</span>) <span class="hljs-keyword">NOT</span> <span class="hljs-number">NULL</span> <span class="hljs-keyword">COMMENT</span> <span class="hljs-string">'昵稱'</span>, <span class="hljs-string">`email`</span> <span class="hljs-number">varchar</span>(<span class="hljs-number">255</span>) <span class="hljs-number">NULL</span> <span class="hljs-keyword">DEFAULT</span> <span class="hljs-number">NULL</span> <span class="hljs-keyword">COMMENT</span> <span class="hljs-string">'郵箱'</span>, <span class="hljs-string">`birthday`</span> <span class="hljs-number">int</span>(<span class="hljs-number">11</span>) <span class="hljs-keyword">UNSIGNED</span> <span class="hljs-keyword">NOT</span> <span class="hljs-number">NULL</span> <span class="hljs-keyword">DEFAULT</span> <span class="hljs-string">'0'</span> <span class="hljs-keyword">COMMENT</span> <span class="hljs-string">'生日'</span>, <span class="hljs-string">`status`</span> tinyint(<span class="hljs-number">2</span>) <span class="hljs-keyword">NOT</span> <span class="hljs-number">NULL</span> <span class="hljs-keyword">DEFAULT</span> <span class="hljs-string">'0'</span> <span class="hljs-keyword">COMMENT</span> <span class="hljs-string">'狀態'</span>, <span class="hljs-string">`create_time`</span> <span class="hljs-number">int</span>(<span class="hljs-number">11</span>) <span class="hljs-keyword">UNSIGNED</span> <span class="hljs-keyword">NOT</span> <span class="hljs-number">NULL</span> <span class="hljs-keyword">DEFAULT</span> <span class="hljs-string">'0'</span> <span class="hljs-keyword">COMMENT</span> <span class="hljs-string">'注冊時間'</span>, <span class="hljs-string">`update_time`</span> <span class="hljs-number">int</span>(<span class="hljs-number">11</span>) <span class="hljs-keyword">UNSIGNED</span> <span class="hljs-keyword">NOT</span> <span class="hljs-number">NULL</span> <span class="hljs-keyword">DEFAULT</span> <span class="hljs-string">'0'</span> <span class="hljs-keyword">COMMENT</span> <span class="hljs-string">'更新時間'</span>, PRIMARY <span class="hljs-keyword">KEY</span> (<span class="hljs-string">`id`</span>) ) <span class="hljs-keyword">ENGINE</span>=MyISAM <span class="hljs-keyword">DEFAULT</span> <span class="hljs-keyword">CHARSET</span>=utf8 ;</span> ``` ``` 數據庫配置文件定義如下: ``` <pre class="calibre18"> ``` <span class="hljs-keyword">return</span> [ <span class="hljs-comment">// 數據庫類型</span><span class="hljs-string">'type'</span> => <span class="hljs-string">'mysql'</span>, <span class="hljs-comment">// 服務器地址</span><span class="hljs-string">'hostname'</span> => <span class="hljs-string">'127.0.0.1'</span>, <span class="hljs-comment">// 數據庫名</span><span class="hljs-string">'database'</span> => <span class="hljs-string">'demo'</span>, <span class="hljs-comment">// 數據庫用戶名</span><span class="hljs-string">'username'</span> => <span class="hljs-string">'root'</span>, <span class="hljs-comment">// 數據庫密碼</span><span class="hljs-string">'password'</span> => <span class="hljs-string">''</span>, <span class="hljs-comment">// 數據庫連接端口</span><span class="hljs-string">'hostport'</span> => <span class="hljs-string">''</span>, <span class="hljs-comment">// 數據庫連接參數</span><span class="hljs-string">'params'</span> => [], <span class="hljs-comment">// 數據庫編碼默認采用utf8</span><span class="hljs-string">'charset'</span> => <span class="hljs-string">'utf8'</span>, <span class="hljs-comment">// 數據庫表前綴</span><span class="hljs-string">'prefix'</span> => <span class="hljs-string">'think_'</span>, <span class="hljs-comment">// 數據庫調試模式</span><span class="hljs-string">'debug'</span> => <span class="hljs-keyword">true</span>, ]; ``` ``` 并添加路由定義(`application/route.php`)如下: ``` <pre class="calibre18"> ``` <span class="hljs-keyword">return</span> [ <span class="hljs-comment">// 全局變量規則定義</span><span class="hljs-string">'__pattern__'</span> => [ <span class="hljs-string">'id'</span> => <span class="hljs-string">'\d+'</span>, ], <span class="hljs-string">'user/index'</span> => <span class="hljs-string">'index/user/index'</span>, <span class="hljs-string">'user/create'</span> => <span class="hljs-string">'index/user/create'</span>, <span class="hljs-string">'user/add'</span> => <span class="hljs-string">'index/user/add'</span>, <span class="hljs-string">'user/add_list'</span> => <span class="hljs-string">'index/user/addList'</span>, <span class="hljs-string">'user/update/:id'</span> => <span class="hljs-string">'index/user/update'</span>, <span class="hljs-string">'user/delete/:id'</span> => <span class="hljs-string">'index/user/delete'</span>, <span class="hljs-string">'user/:id'</span> => <span class="hljs-string">'index/user/read'</span>, ]; ``` ``` 我們為`think_user`表定義一個`User`模型(位于`application/index/model/User.php`)如下: ``` <pre class="calibre18"> ``` namespace app\index\model; use think\<span class="hljs-operator">Model</span>; <span class="hljs-operator"><span class="hljs-keyword">class</span> <span class="hljs-title">User</span> <span class="hljs-keyword"><span class="hljs-operator">extends</span></span> <span class="hljs-title">Model</span></span>{ } ``` ``` 大多情況下,我們無需為模型定義任何的屬性和方法即可完成基礎的操作。 ## 設置數據表 模型會自動對應一個數據表,規范是: > ### 數據庫前綴+當前的模型類名(不含命名空間) 因為模型類命名是駝峰法,所以獲取實際的數據表的時候會自動轉換為小寫+下劃線命名的數據表名稱。 如果你的模型命名不符合這一數據表對應規范,可以給當前模型定義單獨的數據表,包括兩種方式。 ### 設置完整數據表: ``` <pre class="calibre18"> ``` namespace app\index\model; use think\<span class="hljs-operator">Model</span>; <span class="hljs-operator"><span class="hljs-keyword">class</span> <span class="hljs-title">User</span> <span class="hljs-keyword"><span class="hljs-operator">extends</span></span> <span class="hljs-title">Model</span></span>{ <span class="hljs-comment">// 設置完整的數據表(包含前綴)</span><span class="hljs-keyword">protected</span> $table = <span class="hljs-operator">'think_use</span>r'; } ``` ``` ### 設置不帶前綴的數據表名: ``` <pre class="calibre18"> ``` namespace app\index\model; use think\<span class="hljs-operator">Model</span>; <span class="hljs-operator"><span class="hljs-keyword">class</span> <span class="hljs-title">User</span> <span class="hljs-keyword"><span class="hljs-operator">extends</span></span> <span class="hljs-title">Model</span></span>{ <span class="hljs-comment">// 設置數據表(不含前綴)</span><span class="hljs-keyword">protected</span> $name = <span class="hljs-operator">'membe</span>r'; } ``` ``` ## 設置數據庫連接 如果當前模型類需要使用不同的數據庫連接,可以定義模型的`connection`屬性,例如: ``` <pre class="calibre18"> ``` <span class="hljs-keyword">namespace</span> <span class="hljs-title">app</span>\<span class="hljs-title">index</span>\<span class="hljs-title">model</span>; <span class="hljs-keyword">use</span> <span class="hljs-title">think</span>\<span class="hljs-title">Model</span>; <span class="hljs-operator"><span class="hljs-keyword">class</span> <span class="hljs-title">User</span> <span class="hljs-keyword">extends</span> <span class="hljs-title">Model</span></span>{ <span class="hljs-comment">// 設置單獨的數據庫連接</span><span class="hljs-keyword">protected</span> <span class="hljs-regexp">$connection</span> = [ <span class="hljs-comment">// 數據庫類型</span><span class="hljs-string">'type'</span> => <span class="hljs-string">'mysql'</span>, <span class="hljs-comment">// 服務器地址</span><span class="hljs-string">'hostname'</span> => <span class="hljs-string">'127.0.0.1'</span>, <span class="hljs-comment">// 數據庫名</span><span class="hljs-string">'database'</span> => <span class="hljs-string">'test'</span>, <span class="hljs-comment">// 數據庫用戶名</span><span class="hljs-string">'username'</span> => <span class="hljs-string">'root'</span>, <span class="hljs-comment">// 數據庫密碼</span><span class="hljs-string">'password'</span> => <span class="hljs-string">''</span>, <span class="hljs-comment">// 數據庫連接端口</span><span class="hljs-string">'hostport'</span> => <span class="hljs-string">''</span>, <span class="hljs-comment">// 數據庫連接參數</span><span class="hljs-string">'params'</span> => [], <span class="hljs-comment">// 數據庫編碼默認采用utf8</span><span class="hljs-string">'charset'</span> => <span class="hljs-string">'utf8'</span>, <span class="hljs-comment">// 數據庫表前綴</span><span class="hljs-string">'prefix'</span> => <span class="hljs-string">'think_'</span>, <span class="hljs-comment">// 數據庫調試模式</span><span class="hljs-string">'debug'</span> => <span class="hljs-keyword">true</span>, ]; } ``` ``` ## 設置字段信息 默認情況下,系統會自動獲取模型對應數據表的字段信息(用于非數據表字段的寫入過濾、參數綁定等),如果你希望減少數據庫的開銷,也可以手動設置數據表的字段信息包括類型(參數綁定是自動判斷的無需設置),例如: ``` <pre class="calibre18"> ``` <span class="hljs-keyword">namespace</span> <span class="hljs-title">app</span>\<span class="hljs-title">index</span>\<span class="hljs-title">model</span>; <span class="hljs-keyword">use</span> <span class="hljs-title">think</span>\<span class="hljs-title">Model</span>; <span class="hljs-operator"><span class="hljs-keyword">class</span> <span class="hljs-title">User</span> <span class="hljs-keyword">extends</span> <span class="hljs-title">Model</span></span>{ <span class="hljs-comment">// 設置當前模型對應的完整數據表名稱</span><span class="hljs-keyword">protected</span> <span class="hljs-regexp">$table</span> = <span class="hljs-string">'think_user'</span>; <span class="hljs-comment">// 設置數據表主鍵</span><span class="hljs-keyword">protected</span> <span class="hljs-regexp">$pk</span> = <span class="hljs-string">'id'</span>; <span class="hljs-comment">// 設置當前數據表的字段信息</span><span class="hljs-keyword">protected</span> <span class="hljs-regexp">$field</span> = [ <span class="hljs-string">'id'</span> => <span class="hljs-string">'int'</span>, <span class="hljs-string">'birthday'</span> => <span class="hljs-string">'int'</span>, <span class="hljs-string">'status'</span> => <span class="hljs-string">'int'</span>, <span class="hljs-string">'create_time'</span> => <span class="hljs-string">'int'</span>, <span class="hljs-string">'update_time'</span> => <span class="hljs-string">'int'</span>, <span class="hljs-string">'nickname'</span>, <span class="hljs-string">'email'</span>, ]; } ``` ``` > 如果字段類型為字符串類型可以不設置類型。
                  <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>

                              哎呀哎呀视频在线观看