Laravel8 有许多之一
Laravel8 Has One Of Many
我是 Laravel 8 的新手,我不知道当我需要一段关系时我应该做什么
在 Laravel 8 的文档中没有很好的记录。
我的用户只能拥有一份工作。
我有一个 tables Jobs,我在其中列出了所有可用的 Job
{ id, name, timestamps }
我是否应该在用户 table 中创建一个 job_id 来存储作业的 ID
要么
我应该使用多对多和 job_user table
有没有更好的方法来创建“有很多”关系。
你们的关系很简单:
职位有许多用户
用户有一份工作
所以,在用户 table 中,您应该将 job_id 和 link 添加到工作 table.
public function up()
{
Schema::table('users', function (Blueprint $table) {
$table->unsignedBigInteger('job_id');
$table->foreign("job_id")->references('id')->on('jobs');
});
}
并确保在创建用户和工作 tables 之后进行此迁移。
根据Laravel doc,关系应该这样设置:
在用户模型中:
class User extends Authenticatable
{
public function job()
{
return $this->belongsTo('App\Models\Job', "user_id");
}
}
对于作业模型:
class Job extends Model
{
public function users()
{
return $this->hasMany('App\Models\User', "user_id");
}
}
我是 Laravel 8 的新手,我不知道当我需要一段关系时我应该做什么 在 Laravel 8 的文档中没有很好的记录。
我的用户只能拥有一份工作。 我有一个 tables Jobs,我在其中列出了所有可用的 Job { id, name, timestamps }
我是否应该在用户 table 中创建一个 job_id 来存储作业的 ID 要么 我应该使用多对多和 job_user table
有没有更好的方法来创建“有很多”关系。
你们的关系很简单:
职位有许多用户
用户有一份工作
所以,在用户 table 中,您应该将 job_id 和 link 添加到工作 table.
public function up()
{
Schema::table('users', function (Blueprint $table) {
$table->unsignedBigInteger('job_id');
$table->foreign("job_id")->references('id')->on('jobs');
});
}
并确保在创建用户和工作 tables 之后进行此迁移。
根据Laravel doc,关系应该这样设置:
在用户模型中:
class User extends Authenticatable
{
public function job()
{
return $this->belongsTo('App\Models\Job', "user_id");
}
}
对于作业模型:
class Job extends Model
{
public function users()
{
return $this->hasMany('App\Models\User', "user_id");
}
}