我有Articles
和Categories
的方案,其中每篇文章只能通过CategoryGroup
只有一个类别。
这意味着article
可以有多个category
但每个category_group
只有一个唯一类别。或者,换句话说,该文章只能包含每个category_group
中的一个类别。
我是否在关系层面对此场景进行建模?或者这是使用自定义验证的问题?
这似乎是一个hasOneThrough
场景,但这不存在。那么解决方法是什么?
我在文章和类别之间尝试了many-to-many relationship
但是如何在将类别附加到单篇文章时限制文章中的每种类别类型?
Schema::create('articles', function (Blueprint $table) {
$table->increments('id');
$table->string('title');
$table->text('body');
$table->string('slug');
$table->timestamps();
});
Schema::create('categories', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->text('description');
$table->string('slug');
$table->string('handle');
$table->integer('category_group_id')->index()->nullable();
$table->timestamps();
});
Schema::create('article_category', function (Blueprint $table) {
$table->integer('article_id')->unsigned();
$table->integer('category_id')->unsigned();
$table->primary(['article_id', 'category_id']);
$table->timestamps();
});