📅  最后修改于: 2023-12-03 15:06:34.572000             🧑  作者: Mango
在 Laravel 中,处理数据库请求时,有时需要从多个数据表中获取数据。本文将介绍如何利用 Eloquent ORM 在 Laravel 中从 2 个表中获取数据。
Laravel 的 Eloquent ORM 是一种简单且优雅的数据库交互方式,它提供了一种强大的方式来处理数据的查询和操作。
假设你有两张表:users 和 posts。现在你想从这两个表中获取所有的用户和他们所写的文章,并按照发布时间进行排序。
首先,我们需要创建两个模型:User 和 Post。
namespace App\Models;
use Illuminate\Database\Eloquent\Model;
class User extends Model
{
protected $table = 'users';
}
class Post extends Model
{
protected $table = 'posts';
}
在模型中定义好表的名字后,我们就可以用 Eloquent 对其进行数据查询。
$usersWithPosts = User::with('posts')->orderBy('created_at')->get();
通过 with
方法,我们将 posts 表和 users 表关联起来,并按照发布时间进行排序。
最后,我们将获取到的数据输出到 View。
return view('users.index', compact('usersWithPosts'));
在 View 中,我们可以很容易地遍历出数据。
@foreach($usersWithPosts as $user)
<h2>{{ $user->name }}</h2>
@foreach($user->posts as $post)
<h3>{{ $post->title }}</h3>
<p>{{ $post->content }}</p>
@endforeach
@endforeach
通过使用 Eloquent ORM,在 Laravel 中从 2 个表中获取数据变得简单而优雅。我们只需要创建模型,定义数据表的名字,然后在查询中关联它们即可。
完整的代码可以在 GitHub 上找到。