Доброй ночи. Такая ситуация. Есть таблицы: аксессуаров(products), запчасти(details), orders. Так вот, в orders есть поле product_id, где хранится id заказанного товара. Так вот. В чем трабл. С belongsToMany к products прокатывает, но к запчастям нет, т.к. нет поля detail_id. Я вот не знаю. У меня пока на уме только один вариант. Сделать таблицу заказов дополнительно под запчасти и выводить. Или же можно как-то это универсально сделать в одной? У кого какие идеи есть?)
n addition to customizing the name of the joining table, you may also customize the column names of the keys on the table by passing additional arguments to the belongsToMany method. The third argument is the foreign key name of the model on which you are defining the relationship, while the fourth argument is the foreign key name of the model that you are joining to:
return $this->belongsToMany('App\Role', 'role_user', 'user_id', 'role_id');
Не оно?
хм. Как-то странно.
return $this->belongsToMany('App\Detail', 'orders', 'product_id', 'id')->withPivot('id','count','total','date');
Вардампнул это дело и мне вывело и запчасти, и аксессуары, и данные юзера. Все до кучи вообще. В чем может быть дело?)
Andrzej Wielski: Эм. Такая ситуация теперь. У меня теперь выводит запчасти только те, у которых в orders user_id = текущего юзера и product_id также текущего юзера) Почему так?
Привет! Скажи пожалуйста как у тебя строится логика? Один аксессуар может быть в нескольких заказах, и так же один заказ может содержать несколько аксессуаров. Я правильно понимаю? Для такого отношения many-to-many необходимо создать новую таблицу products_orders, где будут хранится id, product_id, order_id. И для такой таблицы в Laravel делать связи belongsToMany. Если логика другая, опишите ее :)