我正在做一个laravel项目。
我有两个桌子:公司,产品
每个公司都有很多产品。我想显示公司名称和徽标以及产品详细信息。
class Company extends Model
{
//
public function products()
{
return $this->hasMany('System\Product','company_id');
}
}
...........
class Product extends Model
{
public function company()
{
return $this->belongsTo('Systems\Company','id');
}
}
..........
company_table
id company_name company_logo
1 MDE image.png
procut_table
id product_name price company_id
1 7-up 200 1
我要如何分散它?
我想这样显示它:
Product_name
price
company_name
company_logo
如何在laravel中写一个查询给我这个结果? ......
答案 0 :(得分:0)
您需要使用join
,可以使用以下查询
$result = DB::table('Product')->join('Company', 'Product.company_id', '=', 'Company.id')->get();
获得结果
答案 1 :(得分:0)
您可以要求您的产品并加载其关系company
。
$products = Product::with('company')->get();
然后您可以访问每种产品的公司
@foreach($products as $product)
{{$product->name}}<br/>
{{$product->price}}<br/>
{{$product->company->name}}<br/>
{{$product->company->logo}}<br/>
@endforeach
答案 2 :(得分:0)
class Company extends Model
{
public function products()
{
return $this->hasMany('System\Product','company_id','id');
}
}
class Product extends Model
{
public function company()
{
return $this->belongsTo('Systems\Company','company_id','id');
}
}
在您的控制器中,您可以像这样。
$products = Product::with('company')->get();
foreach ($products as $product) {
echo $product->company->name; //MDE
echo $product->company->company_logo; //image.png
echo $product->price; //200
}