Я хочу соединить мою Customer
модель с моей CustomerGroup
моделью в Laravel, используя сводные таблицы.
Я попробовал это со следующим: (в качестве ссылки я использовал https://ben.lobaugh.net/blog/204838/how-to-use-custom-pivot-tables-in-laravel-6-x но я мог сделать что-то не так)
Я создал миграцию customer_group_customer
и в схему добавил следующее:
$table->unsignedBigInteger("customer_group_id");
$table->unsignedBigInteger("customer_id");
В моделях Customer
и Customer_groups
Я добавил функцию. Эта функция похожа на следующую (например, это модель Customer
):
public function groups(){
return $this->belongsToMany("App\CustomerGroup","customer_group_customer","customer_id","customer_group_id");
}
Затем я создал клиента и группу, а затем связал их вручную с помощью:
DB::table("customer_group_customer")->insert(["customer_group_id" => $group->id, "customer_id" => $customer->id]);
После этого я выбрал всех клиентов и увидел, что они не подключены (через dd () я не смог увидеть ни одной записи в группах или аналогичных):
$customer = \App\Customer::create([]);
$group = \App\CustomerGroup::create(["name" => "hey"]);
DB::table("customer_group_customer")->insert(["customer_group_id" => $group->id, "customer_id" => $customer->id]);
dd(\App\Customer::first());
Как правильно настроить сводные таблицы?
И есть ли лучший способ создать клиента и назначить ему группу, не делая его вручную с фасадом DB
?