💎一站式轻松地调用各大LLM模型接口,支持GPT4、智谱、星火、月之暗面及文生图 广告
数据模型 ~~~ <?php namespace app\index\model; use think\Model; class Staff extends Model { //Model 均为大写 } ?> ~~~ 模型会自动对应数据表,模型类的命名规则是除去表前缀的数据表名称,采用驼峰法命名,并且首字母大写,例如: |模型名 |约定对应数据表(假设数据库的前缀定义是 think_)| |---|---| |User| think_user| |UserType| think_user_type| 控制器 ~~~ <?php namespace app\index\controller; use app\index\model\Staff; class Index { public function index(){ $model = new Staff(); dump($model); } } ~~~ #### 输出反馈 //该对象共计有32个受保护属性,必须在本类或子类中使用,外部不能直接使用 ~~~ object(app\index\model\Staff)#5 (32) { ["connection":protected] => array(0) { } ["parent":protected] => NULL ["query":protected] => NULL ["name":protected] => string(5) "Staff" ["table":protected] => NULL ["class":protected] => string(21) "app\index\model\Staff" ["error":protected] => NULL ["validate":protected] => NULL ["pk":protected] => NULL ["field":protected] => array(0) { } ["readonly":protected] => array(0) { } ["visible":protected] => array(0) { } ["hidden":protected] => array(0) { } ["append":protected] => array(0) { } ["data":protected] => array(0) { } ["origin":protected] => array(0) { } ["relation":protected] => array(0) { } ["auto":protected] => array(0) { } ["insert":protected] => array(0) { } ["update":protected] => array(0) { } ["autoWriteTimestamp":protected] => bool(false) ["createTime":protected] => string(11) "create_time" ["updateTime":protected] => string(11) "update_time" ["dateFormat":protected] => string(11) "Y-m-d H:i:s" ["type":protected] => array(0) { } ["isUpdate":protected] => bool(false) ["updateWhere":protected] => NULL ["failException":protected] => bool(false) ["useGlobalScope":protected] => bool(true) ["batchValidate":protected] => bool(false) ["resultSetType":protected] => string(5) "array" ["relationWrite":protected] => NULL } ~~~ 目前创建的模型虽然按相关规则,已经与特定数据表绑定了,但是该类的绝大多数属性的值,仍处于默认或不确定状态; 现在该模型中有二个属性值是确定的: 1. $name //模型名称 2. $class //模型类命名空间,即如何找到这个类 其它的属性值,在创建数据对象时,会自动获取。 指定数据表甚至数据库连接 ~~~ namespace app\index\model; class User extends \think\Model { // 设置当前模型对应的完整数据表名称 protected $table = 'think_user'; // 设置当前模型的数据库连接 protected $connection = [ // 数据库类型 'type' => 'mysql', // 服务器地址 'hostname' => '127.0.0.1', // 数据库名 'database' => 'thinkphp', // 数据库用户名 'username' => 'root', // 数据库密码 'password' => '', // 数据库编码默认采用utf8 'charset' => 'utf8', // 数据库表前缀 'prefix' => 'think_', // 数据库调试模式 'debug' => false, ]; } ~~~ 和连接数据库的参数一样,connection属性的值也可以设置为数据库的配置参数,而且也是官方推荐的方式,这样可以避免把数据库连接固化在代码里面。 5.0不支持单独设置当前模型的数据表前缀。