天下无坑

天下无坑


DB_NAME.base.php

<h4><strong> 概述</strong></h4> <p>Z-PHP框架通过<code>DB_NAME.base.php</code>配置数据库的字段数据验证方法,数据库操作成功后的回调方法.</p> <pre><code>文件存放位置: COMMON/base/DB_NAME.base.php(/common/目录下) APP/common/base/DB_NAME.base.php(app的版本目录下) // APP覆盖COMMON</code></pre> <h4>文件结构</h4> <pre><code class="language-php">&lt;?php return[ 'TB_NAME'=&gt;[ 'prikey'=&gt;'id',//主键字段名 'columns'=&gt;['id','uid','regtime','status'],//表的字段名 'valid'=&gt;[],//字段数据验证规则 'call'=&gt;[] //数据库操作成功后的回调方法 ] ]</code></pre> <h4>valid 数组</h4> <ul> <li> <p><strong>valid的结构</strong></p> <pre><code class="language-php">[ '!'=&gt;2, //验证模式 'COLUMN_NAME'=&gt;[ 'when'=&gt;'both|insert|update' //何时验证 'must'=&gt;null|true, //是否继续验证 'notnull'=&gt;'账号不能空', 'unique'=&gt;'数据已存在', 'length'=&gt;['value'=&gt;[6,16],'msg'=&gt;'长度不合法'], 'preg'=&gt;['value'=&gt;'/^1[3578]\d{9}$/','msg'=&gt;'手机不合法'], 'number'=&gt;'不是数字', 'ip'=&gt;'ip不合法', 'url'=&gt;'网址不合法', 'email'=&gt;'邮箱地址不合法', 'phone'=&gt;'手机号码不合法', 'int'=&gt;['value'=&gt;[1,16],'msg'=&gt;'整型不符合范围'], 'filter'=&gt;['value'=&gt;'FILETER_VALID','msg'=&gt;'数据不合法'], function($val,$data,$where){ //ANONYMOUS_fUNCTION return $val === 1 ? 0 : '错误提示'; //通过返回0,错误返回文字信息 } ], ... ]</code></pre> </li> <li><strong>valid键名说明</strong></li> </ul> <table> <thead> <tr> <th style="text-align: left;">键名</th> <th style="text-align: left;">值类型</th> <th style="text-align: left;">默认</th> <th>取值/说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;"><strong>!</strong></td> <td style="text-align: left;">int</td> <td style="text-align: left;">1</td> <td><code>1</code>:某一个条件不满足时就返回,<br><code>2</code>:某一个字段不满足时返回,<br><code>null</code>或<code>''</code>或其它:验证完全部字段后返回</td> </tr> <tr> <td style="text-align: left;"><strong>COLUMN_NAME</strong></td> <td style="text-align: left;">array</td> <td style="text-align: left;">[]</td> <td>字段验证规则,格式详见下表</td> </tr> <tr> <td style="text-align: left;"><strong>call</strong></td> <td style="text-align: left;">array</td> <td style="text-align: left;">[]</td> <td>数据库操作后执行的回调函数,格式详见下表</td> </tr> </tbody> </table> <ul> <li><strong>COLUMN_NAME字段验证方法说明</strong></li> </ul> <table> <thead> <tr> <th style="text-align: left;">键名(方法名)</th> <th style="text-align: left;">值类型</th> <th style="text-align: left;">候选值</th> <th>说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;"><strong>when</strong></td> <td style="text-align: left;">string</td> <td style="text-align: left;">'both','insert','update'</td> <td>何时验证 无默认值</td> </tr> <tr> <td style="text-align: left;"><strong>must</strong></td> <td style="text-align: left;">null,boolean</td> <td style="text-align: left;"><strong>null</strong>,true</td> <td>必须验证?</td> </tr> <tr> <td style="text-align: left;"><strong>notnull</strong></td> <td style="text-align: left;">errmsg</td> <td style="text-align: left;">any</td> <td>不能为空</td> </tr> <tr> <td style="text-align: left;"><strong>unique</strong></td> <td style="text-align: left;">errmsg</td> <td style="text-align: left;">any</td> <td>唯一,值在表中是否已存在</td> </tr> <tr> <td style="text-align: left;"><strong>number</strong></td> <td style="text-align: left;">errmsg</td> <td style="text-align: left;">any</td> <td>数字</td> </tr> <tr> <td style="text-align: left;"><strong>ip</strong></td> <td style="text-align: left;">errmsg</td> <td style="text-align: left;">any</td> <td>ip</td> </tr> <tr> <td style="text-align: left;"><strong>url</strong></td> <td style="text-align: left;">errmsg</td> <td style="text-align: left;">any</td> <td>网址</td> </tr> <tr> <td style="text-align: left;"><strong>email</strong></td> <td style="text-align: left;">errmsg</td> <td style="text-align: left;">any</td> <td>邮箱地址</td> </tr> <tr> <td style="text-align: left;"><strong>phone</strong></td> <td style="text-align: left;">errmsg</td> <td style="text-align: left;">any</td> <td>手机号码</td> </tr> <tr> <td style="text-align: left;"><strong>preg</strong></td> <td style="text-align: left;">array</td> <td style="text-align: left;">[<br>'value'=&gt;'/^8\d{7}$/',<br>'msg'=&gt;'msg'<br>]</td> <td>正则验证</td> </tr> <tr> <td style="text-align: left;"><strong>length</strong></td> <td style="text-align: left;">array</td> <td style="text-align: left;">[<br>'value'=&gt;6,<br>'msg'=&gt;'msg'<br>] <br><strong>OR</strong><br> [<br>'value'=&gt;[6,16],<br>'msg'=&gt;'msg'<br>]</td> <td>长度不大于或不超范围</td> </tr> <tr> <td style="text-align: left;"><strong>int</strong></td> <td style="text-align: left;">array</td> <td style="text-align: left;">[<br>'value'=&gt;6,<br>'msg'=&gt;'msg'<br>] <br><strong>OR</strong><br> [<br>'value'=&gt;[6,16],<br>'msg'=&gt;'msg'<br>]</td> <td>不超范围的整数,(默认最小大于0)</td> </tr> <tr> <td style="text-align: left;"><strong>filter</strong></td> <td style="text-align: left;">array</td> <td style="text-align: left;"><a href="https://www.runoob.com/php/php-ref-filter.html" title="过滤器名">FILTER过滤器名</a></td> <td>PHP过滤器测试</td> </tr> <tr> <td style="text-align: left;"><strong>ANONYMOUS</strong></td> <td style="text-align: left;">function</td> <td style="text-align: left;">function($val,$data,$where){<br>return $val === 1 ? 0 : '错误提示';<br>}</td> <td>匿名函数验证,通过返回0,错误返回文字信息</td> </tr> </tbody> </table> <h4>call 数组</h4> <ul> <li><strong>call键名列表</strong></li> </ul> <table> <thead> <tr> <th style="text-align: left;">键名(方法名)</th> <th style="text-align: left;">说明</th> </tr> </thead> <tbody> <tr> <td style="text-align: left;"><strong>insert</strong></td> <td style="text-align: left;">执行insert操作成功后执行</td> </tr> <tr> <td style="text-align: left;"><strong>update</strong></td> <td style="text-align: left;">执行update操作成功后执行</td> </tr> <tr> <td style="text-align: left;"><strong>ifUpdate</strong></td> <td style="text-align: left;">执行ifUpdate操作成功后执行</td> </tr> <tr> <td style="text-align: left;"><strong>delete</strong></td> <td style="text-align: left;">执行delete操作成功后执行</td> </tr> </tbody> </table> <ul> <li><strong>call值格式</strong></li> </ul> <pre><code class="language-php">//函数格式 'update'=&gt;function($params, $db){ if(empty($params['data']) || !$uid = $db-&gt;getWhereByKey('uid')) return false; \lib\state\user::setInfoCache('member', $uid, $params['data']); } //$params参数 //$params = [ //'result' =&gt; $result, //'where' =&gt; $this-&gt;DB_WHERE, //'sql' =&gt; $sql, //'bind' =&gt; $this-&gt;DB_BIND //] //$db参数 db实例对象 </code></pre>

页面列表

ITEM_HTML