Я работаю над добавлением часто задаваемых вопросов в базу данных, используя laravel 5.6 отношения многие ко многим. Вот мои миграции:
Faq Категория: (Список всех типов часто задаваемых вопросов)
Schema::create('faq_categories', function (Blueprint $table) {
$table->increments('id');
$table->string('name');
$table->softDeletes();
$table->timestamps();
});
Faq Таблица:
Schema::create('faqs', function (Blueprint $table) {
$table->increments('id');
$table->string('title', 160);
$table->longText('description');
$table->boolean('published')->default(0);
$table->softDeletes();
$table->timestamps();
});
Типы часто задаваемых вопросов: (Все категории часто задаваемых вопросов для конкретного FAQ)
Schema::create('faq_types', function (Blueprint $table) {
$table->increments('id');
$table->integer('faq_id')->unsigned();
$table->foreign('faq_id')->references('id')->on('faqs')->onDelete('cascade');
$table->integer('faq_category_id')->unsigned();
$table->foreign('faq_category_id')->references('id')->on('faq_categories')->onDelete('cascade');
$table->timestamps();
});
Я определил отношения следующим образом:
Приложение \ FaqCategory
class FaqCategory extends Model {
use SoftDeletes;
public function faqs() {
return $this->belongsToMany('App\Faq');
}
}
Приложение \ Faq
class Faq extends Model {
use SoftDeletes;
public function categories() {
return $this->belongsToMany('App\FaqCategory');
}
}
Я хочу получить ответы на часто задаваемые вопросы по их категориям. Предположим, есть General
, Other
категория в таблице faq_categories
, тогда я хочу, чтобы faqs группировались по General
, Other
.
Но я не могу получить все faqs, сгруппированные по категориям. Я сделал следующее, но столкнулся с ошибкой:
$faq = FaqCategory::find(1);
return $faq->faqs;
dd($faq);
Ошибка:
SQLSTATE [42S02]: Базовая таблица или представление не найдено: 1146 Таблица 'db_name.faq_faq_category' didn не существует.
Кто-нибудь может подсказать мне, как справиться с этой ситуацией или лучший способ справиться с этим?