20 Eloquent ORM之CRUD操作

在上篇文章中,我们介绍了Laravel中的Eloquent模型,理解了如何定义模型以及与数据库表的关联。本篇将深入探讨如何使用Eloquent ORM进行常见的CRUD(创建、读取、更新、删除)操作。

1. 创建数据

使用Eloquent插入数据至数据库非常简单。我们可以利用模型的create方法,前提是确保在模型中定义了$fillable属性,以防止“批量赋值”漏洞。

示例

假设我们有一个User模型,并希望创建一名新用户:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
// app/Models/User.php
namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class User extends Model
{
use HasFactory;

protected $fillable = ['name', 'email', 'password'];
}

// 在控制器中插入用户
use App\Models\User;

public function store(Request $request)
{
$user = User::create([
'name' => $request->name,
'email' => $request->email,
'password' => bcrypt($request->password),
]);

return response()->json($user, 201);
}

在这个示例中,我们使用User::create方法将用户信息插入到数据库中,并返回创建的用户信息作为JSON响应。

2. 读取数据

读取数据库中的数据可以通过多个方法实现,包括allfindfindOrFail等方法。

示例

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
// 获取所有用户
public function index()
{
$users = User::all();

return response()->json($users);
}

// 根据ID查找用户
public function show($id)
{
$user = User::find($id);

return response()->json($user);
}

// 找不到用户时抛出异常
public function showOrFail($id)
{
$user = User::findOrFail($id);

return response()->json($user);
}

在这些示例中,我们展示了如何获取所有用户,查找特定ID的用户,以及在找不到用户时抛出异常的方法。

3. 更新数据

更新已有的用户数据可以使用update方法。首先,我们需要检索用户实例,然后修改其属性,最后调用save()方法保存更改。

示例

1
2
3
4
5
6
7
8
9
10
public function update(Request $request, $id)
{
$user = User::findOrFail($id);
$user->name = $request->name;
$user->email = $request->email;
$user->password = bcrypt($request->password);
$user->save();

return response()->json($user);
}

在这个示例中,我们通过findOrFail找到特定用户,更新其属性,然后调用save()将改变存储到数据库中。

4. 删除数据

要删除数据,我们可以使用delete方法,识别指定的记录。

示例

1
2
3
4
5
6
7
public function destroy($id)
{
$user = User::findOrFail($id);
$user->delete();

return response()->json(['message' => 'User deleted successfully']);
}

在这个示例中,我们同样使用findOrFail获取用户记录,调用delete()方法以从数据库中移除该记录,并返回一个成功响应。

小结

在本篇文章中,我们详细讨论了如何使用Eloquent ORM进行CRUD操作。掌握这些基本操作后,您将能够轻松地在Laravel中管理数据库记录。在下一篇文章中,我们将继续深入探讨Eloquent ORM中的关系查询,进一步增强我们对数据之间关系的理解。通过对数据模型的关系管理,我们将能够处理更复杂的数据交互,构建更具功能性的应用。

希望本篇内容对您理解Eloquent ORM的CRUD操作有所帮助!

20 Eloquent ORM之CRUD操作

https://zglg.work/laravel-zero/20/

作者

AI免费学习网(郭震)

发布于

2024-08-15

更新于

2024-08-16

许可协议

分享转发

交流

更多教程加公众号

更多教程加公众号

加入星球获取PDF

加入星球获取PDF

打卡评论