如果仅是简单的增、删、改、查操作,数据库查询完全可以满足要求。但是,如果涉及到字段验证或复杂逻辑,必须要用模型来解决。实际上,在开发中,要坚持始终用模型操作数据库,以应对复杂多变的开发需求。
例如,时间字段的自动写入仅针对模型的写入方法,如果使用数据库的更新或者写入方法则无效。全局开启,在数据库配置文件中进行设置:
// 开启自动写入时间戳字段
'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');
领取专属 10元无门槛券
私享最新 技术干货