Rückkehr ich diese Funktion habe:ein einzelnes Eloquent Objekts in Laravel
protected function compare_something($found_item, $saved_items)
{
foreach($saved_items as item) {
$compare_x = false;
$compare_y = false;
$compare_z = false;
$compare_x = strpos($found_item,$item->x) !== false ? true: false;
$compare_y = strpos($found_item,$item->y) !== false ? true: false;
$compare_z = strpos($found_item,$item->z) !== false ? true: false;
if($compare_x && $compare_y && $compare_z){
return $item;
}
}
return false;
}
ich $item
erwarten, dass das Objekt sein, wo $compare_x, $compare_y
und $compare_z
wahr sind, aber diese Funktion gibt einfach das gesamte eloquent Objekt ($saved_items
) statt der Vergleichte.
Ich bin mir nicht sicher, warum das passiert. Kann ich immer wieder:
$item->id
Und dann tun Item::where("id",$item->id)->first();
Aber nicht nur das Rück $item
liefern mir nur das gewählte Thema?
Als Randnotiz, wenn Sie eine Liste von 'Eloquent' Elementen haben, sind sie als' Collection' gespeichert, die einen handlichen 'filter()' Funktion hat: https://laravel.com/docs/5.4/collections#method-filter (beachten Sie leichte Syntaxänderungen basierend auf Ihrer Version von Laravel). –