Метод Model::create
фактически создает запись в вашей базе данных, и, поскольку вы не указываете обязательное значение site_id
, происходит сбой, поэтому вы видите эту ошибку.
Похоже, что вы пытаетесь использовать отношения Laravel для сохранения нового SiteFeature
для сайта, но вы передаете то, что уже было бы существующим объектом (если запрос не сработал) в * 1006 отношения * метод.
Вам необходимо либо передать новый экземпляр SiteFeature
, который еще не был сохранен в базе данных, в метод save
:
$this->features()->save(new SiteFeature(['feature' => $feature]));
или вы можете использовать метод отношения create
, чтобы избежать необходимости передавать экземпляр целиком, вам просто нужно предоставить атрибуты:
$this->features()->create(['feature' => $feature]);