Laravel中数据透视表的访问关系

乔治

我有三个模型BillProductProcessBill与ManyToMany关系Product并且数据透视表有一些额外的字段。我编写如下的Bill模型类:

<?php
    class Bill extends Model
    {
           function products(){
                return $this->belongsToMany(\App\Product::class)
                    ->withPivot('process_id') // the id of the Process 
                    ->withTimestamps();
            }
    }

Process模型是带有id和的简单表name我正在关联数据透视表中的ID以引用流程,该名称可能会随时间变化,但仍引用相同的概念,因此我无法关联该名称。

单个Bill商品的显示页面列出了表中关联的产品,如下所示:

@foreach($bill->products as $product)
     <tr>
        <td>{{$product->barcode}}</td>
        <td>{{$product->pivot->process_id}}</td> 
     </tr>
@endforeach

所以问题是我需要进程的名称,但是我有ID。我不确定如何获得这个名字。

谢谢

契奇

我认为您可以使用自己的数据透视模型,例如ProductBill以实现此目的。

class ProductBill extends Pivot {

    public function process() {
        return $this->belongsTo(Process::class);
    }

}

通过在您的关系中使用此模型productsBill

class Bill extends Model {

    function products() {
        return $this->belongsToMany(\App\Product::class)
            ->withPivot('process_id')
            ->using(ProductBill::class)
            ->withTimestamps();
    }

}

访问时,$product->pivot您应该获得MyCustomPivotModelnow的实例,因此您应该能够执行以下操作:

<td>{{$product->pivot->process->name}}</td> 

(不幸的是,我现在无法再次检查:/)

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

在laravel中访问数据透视表数据

从laravel中的数据透视表访问数据

Laravel 与数据透视表的关系

数据透视表关系 Laravel

Laravel L5.5 无法访问“多对多”关系中的数据透视表

如何在Laravel中为数据透视表编写关系?

在laravel 4中存储与数据透视表的关系

Laravel Eloquent 获取与数据透视表中的值匹配的关系

Laravel 6 中的 Laravel 访问器数据透视表

在 Laravel 中,如何从数据透视表访问数据?

Laravel雄辩的关系和数据透视表

laravel嵌套关系数据透视表

Laravel数据透视表n:m关系

Laravel 与数据透视表的雄辩关系

Laravel 数据透视表的访问索引

如何限制从数据透视表访问?Laravel

从数据透视表中检索数据到多对多关系船laravel 5

Laravel在多对多关系中删除数据透视表数据

将数据保存到数据透视表中-多对多关系-Laravel

PHP-Laravel 以多对多关系从数据透视表中获取数据

Laravel表关系透视表

使用Laravel雄辩的中间关系过滤数据透视表数据

Laravel从数据透视表获取数据的多对多关系

如何在Laravel中的数据透视表中添加其他列关系

Laravel 中的复杂关系(通过数据透视表 hasManyThrough)

在Laravel 4中使用数据透视表时如何分配关系?

Laravel在自定义数据透视表中雄辩地一对多关系

Laravel中具有多对多关系的Factory Seed数据透视表

Laravel 5.8:如何在多对多关系中显示数据透视表的列信息