Хорошо, я понимаю, что вы пытаетесь сделать. Проблема здесь
public function post()
{
return $this->belongsTo(Post::class);
}
Поскольку это полиморфное отношение, вы не можете использовать стандарт belongsTo
, поскольку у вас нет post_id
в таблице.
Вам необходимо использовать функцию morphTo
, подобную этой, в модели комментария
public function commentable()
{
return $this->morphTo();
}
Так что, когда вы звоните
$comment->commentable()->get();
Затем он вернет любую полиморфную модель, с которой связан.
Немного сложно привести пример точного кода, поскольку вы еще не дали ни одного варианта использования.
Но, как сказано в комментариях, вам не нужно связывать id и слаг. Также я считаю, что у MySQL есть проблемы при использовании текстовых полей для ключей, и я думаю, что вам нужно указать длину поля, но не 100%, возможно, кто-то, кто знает больше о MySQL, мог бы подтвердить это.