如何在laravel中从两个表中加入和获取数据?

我正在做一个 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 中编写查询来给出这个结果?………………


MM们
浏览 193回答 3
3回答

隔江千里

 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    }

凤凰求蛊

您可以调用您的产品并加载它的关系company。$products = Product::with('company')->get();然后你可以访问每个产品的公司@foreach($products as $product)&nbsp; &nbsp; {{$product->name}}<br/>&nbsp; &nbsp; {{$product->price}}<br/>&nbsp; &nbsp; {{$product->company->name}}<br/>&nbsp; &nbsp; {{$product->company->logo}}<br/>@endforeach

湖上湖

您需要使用join,您可以使用以下查询$result&nbsp;=&nbsp;DB::table('Product')->join('Company',&nbsp;'Product.company_id',&nbsp;'=',&nbsp;'Company.id')->get();得到你的结果
打开App,查看更多内容
随时随地看视频慕课网APP