Я делаю несколько таблиц, имеющих отношения один-ко-многим, и у меня также есть отношения один-к-одному, но если я решу это, почему это не работает, возможно, я смогу решить и один к одному.Я предоставлю некоторые коды для вас, чтобы посмотреть.
когда я перехожу к мастеру и набираю как «Company :: find (1) -> deparments», возвращается ноль.когда я проверяю базу данных, внешний ключ добавляется правильно.Я также установил первичный ключ в модели.
Стол компании
public function up()
{
Schema::create('companies', function (Blueprint $table) {
$table->bigIncrements('company_id');
$table->string('phone');
$table->string('company_name',100);
$table->timestamps();
});
}
Стол отдела
public function up()
{
Schema::create('departments', function (Blueprint $table) {
$table->bigIncrements('department_id');
$table->unsignedBigInteger('company_id');
$table->foreign('company_id')->references('company_id')->on('companies')->onDelete('cascade');
$table->string('department_name',100);
$table->timestamps();
});
}
Модель компании
protected $primaryKey = 'company_id';
Protected $table='companies';
Protected $fillable=['phone','company_name'];
public function users()
{
return $this->hasMany(User::class,'user_id');
}
Модель отдела
protected $primaryKey = 'department_id';
protected $table = 'departments';
protected $fillable = ['department_name'];
public function company()
{
return $this->belongsTo(Company::class,'company_id');
}
public function users()
{
return $this->hasMany(User::class,'department_id');
}