Мне нужно получить список продуктов торговой точки пользователя, но она возвращает эту ошибку
SQLSTATE[42S22]: Column not found: 1054 Unknown column '1' in 'on clause' (SQL: select * from `barcodes` inner join `outlet_products` on `1` = `outlet_products`.`outlet_id
Logi c
Получить список продуктов только торговой точки пользователя (не все продукты из всех розетки)
- Продукт
basically just name and description
(имеет много штрих-кодов) - Штрих-код (принадлежит продуктам, принадлежит многим розеткам)
- Розетка (имеет много штрих-кодов)
Код
$user = $request->user();
$outlets = $user->outlets->pluck('id');
$products = Barcode::with('product', 'damages', 'outlet')
->join('outlet_products', function ($join) use($outlets) {
$join->on($outlets, '=', 'outlet_products.outlet_id');
})
->get();
Product model
public function barcodes()
{
return $this->hasMany(Barcode::class, 'product_id', 'id');
}
Barcode model
public function product()
{
return $this->belongsTo(Product::class);
}
public function outlet()
{
return $this->belongsToMany(Outlet::class, 'outlet_products', 'barcode_id', 'outlet_id');
}
outlet model
public function barcodes()
{
return $this->belongsToMany(Barcode::class, 'outlet_products', 'outlet_id', 'barcode_id');
}
Продукты торговых точек на самом деле возвращаются через штрих-коды (в торговой точке много штрих-кодов, и каждый штрих-код принадлежит продукту).
Есть идеи?
Обновление
Я сделал некоторые изменения в своем коде, и теперь это выглядит так:
$products = Barcode::with('product', 'damages', 'outlet')
->join('outlet_users', 'outlet_users.user_id', '=', $user->id)
->join('outlet_products', 'outlet_products.outlet_id', '=', 'outlet_users.outlet_id')
->get();
Теперь он возвращает эту ошибку:
SQLSTATE[42S22]: Column not found: 1054 Unknown column '4' in 'on clause' (SQL: select * from `barcodes` inner join `outlet_users` on `outlet_users`.`user_id` = `4` inner join `outlet_products` on `outlet_products`.`outlet_id` = `outlet_users`.`outlet_id`)
В основном с помощью этой новой функции я пытаюсь получить пользователя outlet.id и сопоставить его со штрих-кодом (product) outlet.id.