我有模型:row
和Partido
在Coalicion
关系中相关。
我需要知道两个或多个many to many
何时有相同的Coalicion
。
希望我已经解释过了自己。
编辑1: 型号:
Partido
让我们说用户从选择输入中选择了一些元素,然后我将它们抓取到数组中并将它们发送给控制器。
class Coalicion extends Model
{
public function partidos()
{
return $this->belongsToMany(Partido::class);
}
}
例如,这会在浏览器中给出以下答案:
...
public function example(Request $request)
{
$coaliciones = $request->coaliciones;
foreach ($coaliciones as $c) {
$coalicion = Coalicion::find($c);
# Here we have a list of Coalicion model in a loop
# Let's say the first iteration I can see the relationship
dump($c->partidos);
}
}
我需要知道第一个Collection的第0项和第二个Collection的第2项是否相同。
答案 0 :(得分:0)
我找到了一种方法,但我不知道这是正确的还是最好的方法。
在Coalicion模型中,我添加了以下function
:
public function partidosId()
{
return $this->partidos->pluck('id');
}
有了这个,我只能从关系中得到id
,然后在controller
我创建了一个空的array()
,并用我所有的id
填充它然后,使用foreach
循环完成我评估现在填充的id
中的array
是否唯一,如果唯一值小于数组的长度,那么模型具有相同的关系(我不知道哪个,但它是一个开始),例如:
public function example(Request $request)
{
$coaliciones = $request->coaliciones;
$allItems = [];
foreach ($coaliciones as $c) {
$coalicion = Coalicion::find($c);
$allItems = array_merge($allItems, $coalicion->partidosId()->toArray());
}
if (count(array_unique($allItems))<count($allItems)) {
dd("Duplicates");
}else{
dd("Uniques");
}
}
如果有人找到更好的方法或方法来了解哪些是重复关系,请告诉我