Моя система комментариев работает хорошо с полиморфным отношением.Но мне нужно кое-что объяснить, чтобы помочь мне решить эту проблему.
Существует страница бренда, и на этой странице бренда есть комментарии, также у бренда есть поддержка клиентов и комментарии для нее.Я не мог возражать, как сделать эти отношения красноречивыми.Некоторые бренды не имеют поддержки клиентов, поэтому мне нужно вернуть логическое значение, чтобы подтвердить это, но я даже не смог подготовить базу данных для этого отношения.
Бренд -> customerSupport -> Комментарии (Как сделать это отношение иструктура базы данных)
Нужно ли добавить несколько дополнительных столбцов в таблицу комментариев, чтобы сделать это правильно?Или просто нужно создать новый модал как CustomerSupport и импортировать его в commentable_type при добавлении или перечислении комментариев?
Структуры таблиц
//Brands Table
id - name - slug - img - timestamps
//Comments Table
id - parent_id - user_id(fk) - commentable_id - commentable_type - timestamps
Бренд модальных
class Brand extends Model
{
// Table Name
protected $table = 'brands';
// Primary Key
public $primaryKey = 'id';
public function comments()
{
return $this->morphMany('App\Comment', 'commentable')->whereNull('parent_id');
}
}
Комментарий модальный
class Comment extends Model
{
//Table Name
protected $table = 'comments';
// Primary Key
public $primaryKey = 'id';
//Fillables ...
public function commentable()
{
return $this->morphTo();
}
//Comment belongs to user
public function user()
{
return $this->belongsTo('App\User');
}
//Comment belongs to brand
public function brands()
{
return $this->belongsTo('App\Brand');
}
//Comment have many replies
public function replies()
{
return $this->hasMany('App\Comment', 'parent_id');
}
}