我需要任何人帮助解决这个问题 我在Laravel创建了一个小项目 我有两张桌子:电缆和协会。
电缆
id |电缆|价格
1 | OMDS001 | 144.50
2 | OMDS001-MC | 152.70
3 | OMDS001-NC | 149.00
4 | AR-T4CR | 167.90
协会
cable_id | cable_associated_id
1 | 2
1 | 3个
关系是:一根电缆有多个关联
我必须设置最终销售价格。
限制条件是,如果电缆相互关联(如1,2和3),则每个电缆的最终售价必须最高。
在这种特定情况下,最终销售价格必须是:
1 | OMDS001 | 152.70
2 | OMDS001-MC | 152.70
3 | OMDS001-NC | 152.70
4 | AR-T4CR | 167.90
该值必须仅是可视的,不得在数据库中输入
谢谢你的帮助。
答案 0 :(得分:0)
我假设您已创建了相应的模型,例如App\Cable
和App\Association
。
根据Laravel Eloquent Documentation,您可以在模型中创建关系:
电缆型号
class Cable extends Model {
public function associations() {
return $this->hasMany('App\Association');
}
[...]
}
关联模式
class Association extends Model {
public function cable() {
return $this->belongsTo('App\Cable');
}
[...]
}
在您的控制器中,您可以遍历关联数组:
$cable = Cable::find($id);
$totalPrice = $cable->price;
foreach($cable->associations as $association) {
$totalPrice = $totalPrice + $association->price;
}
如果关系定义正确,$cable->association
属性包含一个包含每个关联电缆的数组。
请注意:这是一些伪代码,我做了一些假设。对于关系,您需要在表中指定正确的外键列名称。有关详细信息,请参阅上述Eloquent ORM文档。
答案 1 :(得分:0)
感谢您的帮助。所有的假设都是正确的
只要我单独寻找它(使用find方法)我就没有问题
我的问题是:
在 CableController 中,我有公共功能索引,可以在查看cables.index
$cables = Cable::all();
return (cables.view, compact('cables');
视图有一个包含所有电缆的桌子
here
如果你在Prezzo Vendita专栏中看到我必须得到那个结果(也就是说,它们之间的电缆价格最高)