Существует три модели.
class GrandParent extends Model
{
}
class Parent extends Model
{
public function children()
{
return $this->hasMany(Child::class);
}
public function grand_parent()
{
return $this->belongsTo(GrandParent::class);
}
}
class Child extends Model
{
protected $fillable = ['parent_id','grand_parent_id','data'];
}
При вставке записи в Child также вставляются parent_id и grand_parent_id, но grand_parent_id задается вручную
$data = $this->someDataGenerator();
$child = Child::first();
$child()->create([
'grand_parent_id' => $parent->grand_parent->id, //manually insert
'data' => $data
]);
Есть ли способ сделать это по модели?Поэтому всякий раз, когда $child()->create($data)
, grand_parent_id будет автоматически вставляться?