Одна модель, использующая отношения «многие ко многим» с несколькими другими моделями - PullRequest
0 голосов
/ 31 марта 2020

Я хочу иметь одну таблицу, содержащую информацию о людях (имя, телефон, адрес электронной почты) с именем contacts, которая затем может быть связана с несколькими другими таблицами (clients, properties, jobs). Тем не менее, я понятия не имею, как подойти к этому через Eloquent. Я рассмотрел наличие 2 дополнительных полей в таблице contacts, entity_id и entity_type для идентификации связанных записей в других таблицах, но я надеюсь, что есть более чистый, более Laravel способ достижения sh this.

create_contacts_table. php

Schema::create('contacts', function (Blueprint $table) { $table->id(); $table->string('first_name')->nullable(); $table->string('last_name')->nullable(); $table->string('phone')->nullable(); $table->string('email')->nullable(); $table->timestamps(); });

create_clients_table. php

Schema::create('clients', function (Blueprint $table) { $table->id(); $table->string('name'); $table->string('address_1'); $table->string('address_2')->nullable(); $table->string('city')->nullable(); $table->string('state')->nullable(); $table->integer('zip_code')->nullable(); $table->timestamps(); });

create_properties_table. php

Schema::create('properties', function (Blueprint $table) { $table->id(); $table->string('address_1'); $table->string('address_2')->nullable(); $table->string('city'); $table->string('state'); $table->integer('zip_code'); $table->timestamps(); });

...