Laravel Model 的增删改查

这篇博客详细介绍了在 Laravel 框架中使用 Eloquent ORM 对数据进行查询、插入、更新和删除的操作。包括如何选择特定字段查询、遍历查询结果、获取单条记录、批量赋值、更新特定字段以及删除记录等,并展示了如何利用`$fillable`和`$guarded`属性进行数据安全。同时,文中提到了 Laravel 自动管理的`created_at`和`updated_at`字段。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

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);
在这里插入图片描述

增:
  1. 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_atupdated_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());
    }
### Laravel Framework 中 Model 的 CRUD 操作 在 Laravel 框架中,Model 是 Eloquent ORM 的核心组件之一,用于表示数据库中的表以及与其关联的数据操作。以下是关于如何通过模型执行基本的增删改查(CRUD)操作的具体说明。 #### 创建记录 (Create) 要创建一条新记录,可以实例化一个新的模型对象并调用 `save()` 方法保存数据到数据库: ```php $user = new App\Models\User; $user->name = 'John Doe'; $user->email = 'john@example.com'; $user->password = bcrypt('secret'); $user->save(); ``` 或者使用 `create` 静态方法来简化这一过程[^1]: ```php App\Models\User::create([ 'name' => 'Jane Doe', 'email' => 'jane@example.com', 'password' => bcrypt('another-secret'), ]); ``` #### 查询记录 (Read) 查询单条或多条记录可以通过多种方式实现。例如,获取指定 ID 的用户记录: ```php $user = App\Models\User::find(1); ``` 如果需要查找满足特定条件的第一条记录,则可使用 `firstWhere` 或者链式调用 `where` 和 `first`: ```php $user = App\Models\User::where('name', 'John Doe')->first(); // 使用 firstWhere 辅助函数 $user = App\Models\User::firstWhere('name', 'John Doe'); ``` 对于检索多个符合条件的结果列表,可以采用 `get` 方法返回集合对象: ```php $users = App\Models\User::where('active', true)->get(); ``` #### 更新记录 (Update) 更新现有记录的方法有两种:一种是对已加载的对象修改属性后再调用 `save()`;另一种是直接利用批量更新功能。 基于已有模型实例的方式如下所示: ```php $user = App\Models\User::find(1); $user->name = 'Updated Name'; $user->save(); ``` 而当不需要单独取出每项再逐一处理时,可以选择更高效的全局更新语句: ```php App\Models\User::where('id', 1)->update(['name' => 'Another Updated Name']); ``` #### 删除记录 (Delete) 删除操作同样支持两种模式——针对具体实体的操作或是按条件成批移除。 先看前者例子: ```php $user = App\Models\User::find(1); $user->delete(); ``` 后者则更为简洁高效,在某些场景下尤为适用: ```php App\Models\User::destroy(1); // 或者按照一定规则清除一批数据 App\Models\User::where('active', false)->delete(); ``` 以上便是有关于 Laravel 框架内 Model 实现基础 CRUD 功能的主要介绍。 ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值