个人使用Laravel 模型操作数据库的规范步骤。
- 根据项目中数据源的不同,创建 不同的模型基类。[即一个模型基类对应一个数据源]。下面演示以默认数据源 mysql 为例。(可根据配置文件 /config/database.php 中的 "connections" 项配置多个mysql数据源)。
// 创建mysql源模型基类
namespace App\Model;
use Illuminate\Database\Eloquent\Model;
/**
* mysql数据源模型基类
*/
class Base extends Model
{
protected $connection = "mysql"; // 系统默认也是 mysql,可以不配置
// 不使用框架默认的时间填充
public $timestamps = false;
}
2.接下来在实际开发中,所有mysql 数据源的表模型都继承Base 模型。开发公司内部项目中,我不会定义项目的统一表前缀[即database.php配置文件中不会配置表前缀]。
建议根据业务模块的划分使用不同的前缀区分表。 比如: 用户表,部门表,角色表都属于系统模块,我会统一使用 sys_ 开头做前缀。
创建模型文件 User.php 表示sys_user 表
namespace App\Model\Sys;
use App\Model\Base;
class User extends Base
{
protected $table = "sys_user"; // 对应系统的表名
// 保护的属性,设置为空表示所有的字段属性都不保护,所有字段都可以通过 create 新增数据
protected $guarded = []; // 这个属性,我一般都习惯带上,可以通过create方法快速保存数据到mysql
}
3.常见操作。 >更多操作参考 https://xueyuanjun.com/post/21547
表结构如图:
image.png
以下操作都是基于在 Dao 层调用
1.添加数据
$Model=User::query()->create([
"name"=>"xxx",
"email"=>"xxxx@waimaolang.cn",
"department_id"=>2,
"remark"=>"xxxxxx",
]);
return $Model->id; // 得到自增主键
2.查询是否存在,存在则获取模型,不存在则创建并保存
$Model = User::query()->firstOrCreate([
"name"=>"黄华丰gghhh", // 查询条件
],[
// 创建并保存的 $data
"name"=>"黄华丰",
"email"=>"huang@waimaolang.cn",
"department_id"=>2,
"remark"=>"xxxxxx",
]);
3.根据条件查询,存在则更新模型对象,不存在就创建保存模型并返回模型实例
$Model = User::query()->updateOrCreate([
"id"=>1,// 条件
],[
"name"=>"haha",
"email"=>"huang@waimaolang.cn",
"department_id"=>5,
"remark"=>"xxxxxx",
]);
4. 更新数据
$r = User::query()->where(["id"=>1])->update([
"name"=>"陈圆圆"
]);
5. 删除数据
$r = User::query()->where(["id"=>100])->delete();









网友评论