为了账号安全,请及时绑定邮箱和手机立即绑定

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

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

PHP
MM们 2021-12-24 09:05:30
我正在做一个 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_tableid   company_name  company_logo 1       MDE        image.pngprocut_tableid  product_name  price  company_id1     7-up         200      1我想如何显示它?我想像这样显示它:Product_namepricecompany_namecompany_logo如何在 laravel 中编写查询来给出这个结果?………………
查看完整描述

3 回答

?
隔江千里

TA贡献1906条经验 获得超10个赞

 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


    }


查看完整回答
反对 回复 2021-12-24
?
凤凰求蛊

TA贡献1825条经验 获得超4个赞

您可以调用您的产品并加载它的关系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


查看完整回答
反对 回复 2021-12-24
?
湖上湖

TA贡献2003条经验 获得超2个赞

您需要使用join,您可以使用以下查询

$result = DB::table('Product')->join('Company', 'Product.company_id', '=', 'Company.id')->get();

得到你的结果


查看完整回答
反对 回复 2021-12-24
  • 3 回答
  • 0 关注
  • 192 浏览

添加回答

举报

0/150
提交
取消
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号