Как вы устанавливаете отношения «многие ко многим» в Laravel 8?

#laravel-8

Вопрос:

Я создал две группы: «Товары» и «Группы». Как вы устанавливаете отношения «многие ко многим» для двух групп с Laravel 8? Как вы добавляете «Товары» и «Группы» с «дополнительными товарами» и «дополнительными группами»? Как вы извлекаете «commoditiesbygroup» и «groupsbycommunity» из базы данных?

Комментарии:

1. <?php use IlluminateDatabaseMigrationsMigration; use IlluminateDatabaseSchemaBlueprint; use IlluminateSupportFacadesSchema; class CreateCommoditiesTable extends Migration { /** * Run the migrations. * * @return void */ общедоступная функция up() { Схема::создание(‘товары’, функция (схема $таблицы) { $таблица->идентификатор(); $таблица->>строка(‘имя’); $таблица->>>метки времени(); }); }

2. Миграция/таблица групп: общедоступная функция вверх() { Схема::создание(«группы», функция (схема $таблица) { $таблица->идентификатор(); $таблица->>метки времени(); }); } /** * Измените миграцию вспять. * * @return void */ публичная функция down() { Схема::dropIfExists(«группы»); } }

3. Миграция/commodity_group_table: общедоступная функция вверх() { Схема::создание(‘commodity_groups’, функция (схема $таблица) { $таблица->идентификатор(); $таблица->>BigInteger(‘идентификатор группы’)->>>без знака(); $таблица->>>>BigInteger(‘идентификатор товара’)->>>>без знака(); $таблица->>>>>метки времени (); $table->>>>>>>foreign(‘group_id’)->>>>>>>>references(‘id’)->>>>>>>>>on(‘groups’)->>>>>>>>>>onDelete(‘cascade’); $table->>>>>>>>>>>foreign(‘commodity_id’)->>>>>>>>>>>>references(‘id’)->>>>>>>>>>>>>on(‘commodities’)->>>>>>>>>>>>>>onDelete(‘cascade’); }); }

4. Модель/Товар: <?приложение пространства имен phpМодели; используйте IlluminateБаза данныхКрасноречивыеФабрикиHasFactory; используйте IlluminateБаза данныхКрасноречиваяМодель; класс Товара расширяет модель { используйте HasFactory; защищенная таблица $ = «товары»; группы публичных функций() { верните $this->Принадлежит(Группа::класс,’commodity_groups’); } }

5. Модель/Группа: <?приложение пространства имен phpМодели; используйте IlluminateБаза данныхКрасноречивыеФабрикиHasFactory; используйте IlluminateБаза данныхКрасноречиваяМодель; группа классов расширяет модель { используйте HasFactory; защищенная таблица $ = «товары»; общедоступная функция товары() { верните $this->Принадлежит многим(Товар::класс,’commodity_groups’); } }