Laravel Collection funktioniert nicht richtig
user3142452
Ich habe ein Problem mit meiner Sammlung
$tasks = Bear::all();
$val = new Collection([]);
foreach($tasks as $tas){
$val ->push($tas->id);
}
$tasks1 = BearPic::whereIn('bear_id',$val)->get();
$val2 = new Collection([]);
foreach($tasks1 as $tas){
$val ->push($tas->bear_id);
}
Mein Echo auf val
einem ist
[10,11,12,10,10,11,11,12,12]
Und weiter tasks1
ist
[{
"id": 1,
"bear_id": 10,
"picnic_id": 1,
"created_at": null,
"updated_at": null
}, {
"id": 2,
"bear_id": 10,
"picnic_id": 2,
"created_at": null,
"updated_at": null
}, {
"id": 3,
"bear_id": 11,
"picnic_id": 1,
"created_at": null,
"updated_at": null
}, {
"id": 4,
"bear_id": 11,
"picnic_id": 2,
"created_at": null,
"updated_at": null
}, {
"id": 5,
"bear_id": 12,
"picnic_id": 1,
"created_at": null,
"updated_at": null
}, {
"id": 6,
"bear_id": 12,
"picnic_id": 2,
"created_at": null,
"updated_at": null
}]
Die zweite Sammlung gibt leer zurück. Was könnte das Problem sein? Ich bin ziemlich neu in Laravel. Dies ist ein Tutorial
Rahul Govind
Die zweite Sammlung val2
ist einfach leer, weil Sie die Werte auf val
die erste Sammlung anstatt verschieben val2
.
Wenn Sie darauf bestehen, keine Joins zu verwenden und an Sammlungen zu arbeiten, pluck
ist dies in der Tat eine schnellere Lösung.
$tasks = Bear::all();
$val = $tasks->pluck('id');
$tasks1 = BearPic::whereIn('bear_id', $val)->get();
$val2 = $tasks2->pluck('bear_id');