Как получить данные из внешнего ключа в объединенной таблице в laravel 5.8 - PullRequest
0 голосов
/ 22 октября 2019

Я хочу получить подробную информацию о товарах в таблице товаров, вызвав ее в таблице purchase_orders в laravel5.8.

Я пытаюсь использовать внутреннее соединение, но в результате получаю только значения чисел

 $POs = DB::table('purchase_orders')
            ->join('products', 'purchase_orders.prod_id', '=', 'products.id')
            ->select('purchase_orders.id as id', 'products.name as name', 'products.cat_id as cat', 'products.size_id as size', 'products.price as price', 'purchase_orders.quant as quant', 'purchase_orders.total as total', 'purchase_orders.created_at as req_date')
            ->orderBy('purchase_orders.id','DESC')
            ->get();

Вот таблица 2 и результат.

таблица продуктов

enter image description here

order_orders

enter image description here

результат

enter image description here

Ответы [ 2 ]

0 голосов
/ 22 октября 2019

Попробуйте это для отношения

public function products ()

{

return $ this-> hasMany ('App \ Models \ Product', 'prod_id', 'id');

}

продукты публичных функций ()

{

return $ this-> hasMany ('App \ Models \ Product)',' prod_id ',' id ');

}

Вывод данных отношений выглядит так:

$ variable-> product-> name

или

$ variable-> product ['name']

0 голосов
/ 22 октября 2019

Создание отношения в Модель Покупки :

public function products()
{
    return $this->hasMany('App\Models\Product','id','prod_id');
}

Вы можете вызвать результат следующим образом:

$res = PurchaseOrder::find($id);
foreach($res->products as $product)
{
  echo $product->name;
}

Используя соединение:

 $POs = DB::table('purchase_orders')
        ->join('products', 'purchase_orders.prod_id', '=', 'products.id')
        ->select('products.*','purchase_orders.id as purchase_id','purchase_orders.total','purchase_orders.status')
        ->orderBy('purchase_orders.id','DESC')
        ->get();

Если вам нужна таблица категорий, добавьте еще одну функцию соединения.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...