2017-02-21 3 views
0

in meinem laravel5 Controller zu finden, nehme ich einige Zeilen von DB:php strpos nicht Ergebnisse in der Ausgabe von Datenbank

$order = Order::select('ordered_by')->where('column1','=','1')->get(); 

dann meiner Meinung nach, wo ich einen Tisch machen,

@foreach($users as $user) 
    @if(strpos($order, $user->id) == true) match! @endif 
@endforeach 

ich Ergebnis

[{"ordered_by":"309"},{"ordered_by":"524"},{"ordered_by":"541"},{"ordered_by":"545"}] 

Warum strpos nicht funktioniert? (Eigentlich gibt es mir „Spiel“ in der Tabelle nur für Benutzer # 546) versucht, dies:

@if (in_array($user->id,$order) ==true) ok @endif 

aber es zeigt Fehler mir in_array() expects parameter 2 to be array, object given

Wie kann ich überprüfen, ob $user->id in $order Ausgang vorhanden ist?

Antwort

0

Versuchen Sie diesen Code:

$order = Order::where('column1','=','1')->get(); 
$orders = array_pluck(collect($order)->toArray(), 'ordered_by'); 

@foreach($users as $user) 
    @if(in_array($user->id, $orders)) 
     ok 
    @endif 
@endforeach 
+0

Jetzt weiß ich über Helfer Funktionen! Danke, es hat funktioniert! – Vit

0

strpos - Finden Sie die Position des ersten Auftretens einer Teil in einem String

Du hast kann es mit in_array

Skript gegeben Versuchen

$order = Order::select('ordered_by')->where('column1','=','1')->get()->toArray(); 

@foreach($users as $user) 
    @if (in_array($user->id,$order)) ok @endif 
@endforeach 
+0

Jetzt bekomme ich Array mit 4 Arrays drin. Dann habe ich print_r aber stristr funktioniert wieder falsch .. Es "sagt" OK nur für Benutzer # 546 .. dd zeigt, dass: Array: 4 [▼ 0 => Array: 1 [▼ "ordered_by" => "309 " ] 1 => arr ... – Vit

Verwandte Themen