20 Eloquent ORM之CRUD操作
在上篇文章中,我们介绍了Laravel中的Eloquent模型
,理解了如何定义模型以及与数据库表的关联。本篇将深入探讨如何使用Eloquent ORM
进行常见的CRUD(创建、读取、更新、删除)操作。
1. 创建数据
使用Eloquent
插入数据至数据库非常简单。我们可以利用模型的create
方法,前提是确保在模型中定义了$fillable
属性,以防止“批量赋值”漏洞。
示例
假设我们有一个User
模型,并希望创建一名新用户:
// 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. 读取数据
读取数据库中的数据可以通过多个方法实现,包括all
、find
、findOrFail
等方法。
示例
// 获取所有用户
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()
方法保存更改。
示例
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
方法,识别指定的记录。
示例
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操作有所帮助!