Быстрый поиск в Google говорит мне, что SQLSTATE [42S22] - это код для «Столбец не найден».
Когда вы звоните Departement::find(1)->categories
, Eloquent делает 2 запроса
- Получить THE Department, если первичный ключ равен 1
- Получить ВСЕ категории, где их атрибут departement_id равен 1
Учитывая запрос в вашей ошибке
select * from `categories` where `categories`.`departement_id` = 1 and `categories`.`departement_id` is not null)
Понятно, что в вашей таблице categories
нет столбца departement_id
.
Если в таблице категорий нет столбца departement_id
Либо:
- Добавьте его в миграцию.
- Добавьте его непосредственно в БД, если вы не работаете с миграциями
Если вы хотите, чтобы другой столбец выступал в качестве внешнего ключа
обновите метод отношений, чтобы отразить это.
https://laravel.com/docs/5.8/eloquent-relationships