Model类的增删改查:
查:
use App\Http\Controllers\Controller;
use App\Models\Home\Member;
class Controllers extends Controller
{
//查询记录
public function select(){
// 查询所有记录只有name字段
$data = Member::all(['name']);
// 打印查询信息
dump($data);
// 查询age大于18岁的记录
$data = Member::where('age','>','18')->get();
// 打印查询结果
dump($data);
}
}
查询后的结果为:
查询后,返回的是一个model模型类。
每条记录是放在: attributes
中:
发现original
里面的数据和attributes
里面的数据是一样的:
original
:数据库原始数据;
attributes
:后台操作后更改后的数据;
遍历查询后的数据:
use App\Http\Controllers\Controller;
use App\Models\Home\Member;
class Controllers extends Controller
{
//查询记录
public function select(){
// 查询所有记录只有name字段
$data = Member::all(['name']);
// 打印查询信息
// dump($data);
// 遍历查询记录
foreach ($data as $v){
// 可以直接访问对应的属性名
echo $v->name.' ';
}
// 查询age大于18岁的记录
$data = Member::where('age','>','18')->get();
// toArray()将数据转换为数组
$data02 = Member::where('age','>','18')->get()->toArray();
// 打印查询结果
// dump($data);
dump($data02);
}
}
访问结果为:
检索单条记录:find、first、firstWhere方法来检索单条数据记录,返回单个模型实例而不是模型集合。
查询年龄在18以上的第一条人员信息:
return Member::firstWhere(''age' ,'>',18); //返回满足条件的第一条记录
find:查询已知记录的主键:
Member::find(13);
增:
- new 一个model的实例对象:
//新增
public function insert(){
// 实例操作
// 对象记录对应,操作对象就是数据表的记录
$member = new Member();
// 数据是空的model实例
dump($member);
// 对成员属性赋值就是对数据表字段新增值
$member->name = 'yy';
$member->age = 20;
$member->email = 'xiaoyu@qq.com';
// 对数据进行save保存
dump($member)
$member->save();
//save之后返回保存成功返回:true,失败返回false
}
添加之后:后面的modelattibutes
多了三个数据;
数据库中,如果有created_at
和updated_at
字段model会默认管理这两个字段
批量赋值:
// 通过批量新增
//create方法
$data = [
'name' => 'xiaohu',
'age' => 22,
'email' => 'xiaohu@163.com'
];
dump(Member::create($data));
还需要去model文件里面设置 $fillable
允许批量赋值的字段名称:
protected $fillable=['name','age','email'];
禁止批量赋值的字段名称
protected $guarded = ['is_admin'];
改:
单记录更新:
// 通过实例化方法进行修改修改(对id为13的记录,修改is_admin的值为2)
//获得一条记录为实例
$data = Member::find(13);
$data->is_admin = 2;
dump($data->save());
// 修改大于11的记录的admin为2
$data = Member::where('id','>',11)->get();
foreach ($data as $v){ //遍历记录对象
$v->is_admin = 2;
// 修改一条就需要对他进行保存
$v->save();
}
dump($data);
批量修改记录:
// 批量修改
// 定义一个修改值的数组
$data = ['is_admin'=>1];
// 对id小于11的is_admin进行修改为1
$rest = Member::where('id','<',11)->update($data);
// 返回更新行数
dump($rest);
删:
只会默认运行第一条删除命令
public function delete(){
// 根据id的值查询并且对查询后的记录进行删除
$rest = Member::find(9) -> delete();
// 返回值为:true和false
dd($rest);
// 批量删除id为【10,13,9】的记录,返回删除的记录行数
dd(Member::destroy([10,13,9]));
// 对查询后的结果进行删除,返回值是删除的记录行数
dd(Member::where('age','>',66)->delete());
}