Попробуйте изменить
return $this->hasMany('App\DifficultyLevel');
на
return $this->belongsToMany('App\DifficultyLevel');
Метод sync()
принимает массив с идентификаторами записей, которые вы хотите синхронизировать, в качестве аргумента, к которому вы можете при желаниидобавить промежуточные значения таблицыХотя sync($request->hard, false)
, похоже, не создает исключение в вашем случае, я не понимаю, как это будет работать.
Попробуйте, например:
$difficulty_level->sbj_types()->sync([1,2,3]);
, где 1,2,3
идентификаторы sbj_types
.
Подробнее о синхронизации можно прочитать здесь .