//默认主键为自动识别,如果需要指定,可以设置属性: namespace app\index\model; use think\Model; class User extends Model { protected $pk = 'uid'; // 设置当前模型对应的完整数据表名称 protected $table = 'think_user'; } 使用助手函数model()快速实例化模型(推荐) public function save(){ $user = model('User'); //
查询范围scope在model中定义,在controller中使用 namespace app\index\model; use think\Model; class User extends Model { // 查询条件为 name = 'thinkphp' ,且只查询 id 和 name两个字段 protected function scopeThinkphp($query) { $query->where('name','thinkphp')->field('id,name'); }
model中需use traits\model\SoftDelete; // 数据表中需添加一个 delete_time 字段保存删除时间 namespace app\index\model; use think\Model; use traits\model\SoftDelete; class User extends Model { use SoftDelete; protected static $deleteTime = 'delete_time'; // 5.2版本之前必须用stati
auto属性自动完成包含新增和更新操作 namespace app\index\model; use think\Model; class User extends Model { protected $auto = ['email'=>'thinkphp@qq.com','ip']; public function setIpAttr(){ return request() -> ip(); } } // 系统会自动将email写入 thinkphp@qq.com , ip 自动写入当前的
可使用以下方式给Model加上相关的meta验证属性,这样实体的验证属性就不会被例如EF或其他工具自动生成的Model所替换了. using System.ComponentModel.DataAnnotations; namespace IDO.Entities { [MetadataType(typeof(CustomerMetadata))] partial class Customer { } public class CustomerMetadata { [Require
1:添加记录后,如何获取新添加的ID的值 比如,一个实体 TestEntity 对应一个表TestEntity(ID主键自增,Name,age),使用linq to ef 添加一条记录后,如何获取新记录的ID值?如下代码: var te = new TestEntity () { Name = "名字", Age = }; using (EFDbContext context = new EFDbContext()) { context.TestEntity .Add(te);