Laravel:如何创建关系以及使用哪一个关系?
Laravel: How do I create the relationship and which one do I use?
我的数据库结构有 classes
table、users
table 和 users_classes
table 相匹配二,因为一个用户可以属于多个 classes。我现在有问题。我有这样的代码:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\DB;
class Classes extends Model
{
protected $table = 'classes';
public function students()
{
}
}
并且我希望能够通过键入 $class = Classes::find(1)
然后 $class->students
访问学生来访问 class 的学生。如何在不使用查询构建器的情况下定义关系?我想使用 eloquent。我是 Laravel 的菜鸟,请不要投票。
您使用 belongsToMany
关系。
如果您的 users_classes
table 具有 user_id
和 class_id
字段,您可以执行以下操作:
public function students()
{
return $this->belongsToMany(Student::class, 'users_classes', 'class_id', 'user_id');
}
我的数据库结构有 classes
table、users
table 和 users_classes
table 相匹配二,因为一个用户可以属于多个 classes。我现在有问题。我有这样的代码:
<?php
namespace App;
use Illuminate\Database\Eloquent\Model;
use Illuminate\Support\Facades\DB;
class Classes extends Model
{
protected $table = 'classes';
public function students()
{
}
}
并且我希望能够通过键入 $class = Classes::find(1)
然后 $class->students
访问学生来访问 class 的学生。如何在不使用查询构建器的情况下定义关系?我想使用 eloquent。我是 Laravel 的菜鸟,请不要投票。
您使用 belongsToMany
关系。
如果您的 users_classes
table 具有 user_id
和 class_id
字段,您可以执行以下操作:
public function students()
{
return $this->belongsToMany(Student::class, 'users_classes', 'class_id', 'user_id');
}