У меня есть следующие моделиLaravel Eloquent многие ко многим с другого столбца как ключевой
Category
id // we don't want to use this one for the relation
category_id // we want to use this
Product
id
CategoryProduct
product_id // points to "id" on products table
category_id // points to **category_id** on categories table
У меня есть модель набора продуктов следующим образом (только самое последнее изменение).
class Product {
public function categories() {
return $this->belongsToMany('Category', 'categories_products', 'category_id');
}
}
Когда я пытаюсь получить продукт с категориями, как следует ...
Product::with('categories')->get();
я либо получить неправильные категории, поскольку запрос использует id
на categories
в качестве внешнего ключа. Мне нужно, чтобы он использовал category_id
в таблице категорий.
Или я вообще ничего не получаю. Я не могу показать, как настроить, какие столбцы использовать для метода belongsToMany
.
Я думаю, что вы хотите 'hasManyThrough' смотрите здесь: https://laravel.com/docs/5.3/eloquent-relationships#has-many-through – Blake
код [Многие Чтобы Многие документы] (https://laravel.com/docs/5.2/eloquent-relationships#many-to-many) имеют хороший пример того, что входит в каждую позицию аргумента для 'attribToMany()'. Попробуйте 'return $ this-> attribToMany ('Category', 'categories_products', 'product_id', 'category_id');' – Qevo