用模型操作数据库:TP5模型的增删改查

如果仅是简单的增、删、改、查操作,数据库查询完全可以满足要求。但是,如果涉及到字段验证或复杂逻辑,必须要用模型来解决。实际上,在开发中,要坚持始终用模型操作数据库,以应对复杂多变的开发需求。

例如,时间字段的自动写入仅针对模型的写入方法,如果使用数据库的更新或者写入方法则无效。全局开启,在数据库配置文件中进行设置:

// 开启自动写入时间戳字段

'auto_timestamp' => true,

(1)定义。

模型会自动对应数据表。

例子:

模型名:User。

约定对应数据表:user。

(2)新增。

模型的数据写入会包含修改器、自动完成、模型事件等。

(3)更新。

如果需要使用模型事件,那么就先查询后更新;如果不需要使用事件,直接使用静态的Update方法进行条件更新。

使用模型的静态update方法更新。

例子:

User::update(['id' => 1, 'name' => 'zhang3']);

(4)删除。

delete 删除当前模型数据。

例子:

$user = User::get(1);

$user->delete();

destroy静态方法,直接删除数据。

例子:

// 支持批量删除多个数据

User::destroy('1,2,3');

(5)查询。

单条get,多条all,模型外部使用静态方法进行查询。

例子:

// 取出主键为1的数据

$user = User::get(1);

// 根据主键获取多个数据

$list = User::all('1,2,3');

getBy字段名,内部使用动态方法查询,包括使用数据库的查询构造器。

例子:

// 根据name字段查询用户

$user = User::getByName('zhang3');

  • 发表于:
  • 原文链接https://kuaibao.qq.com/s/20181212B005S800?refer=cp_1026
  • 腾讯「腾讯云开发者社区」是腾讯内容开放平台帐号(企鹅号)传播渠道之一,根据《腾讯内容开放平台服务协议》转载发布内容。
  • 如有侵权,请联系 cloudcommunity@tencent.com 删除。

扫码关注腾讯云开发者

领取腾讯云代金券