2017-04-07 6 views
2

私のuserテーブルからadmin以外のすべてのユーザを取得しようとしています。そうlaravel |雄弁なforeachが動作しない

$agents = User::where('is_admin','=', 'false')->get(); 

//didn't work 
foreach ($agents as $agent=>$value) 
{ 
    echo "{$agent}=>{$value}"."<br>"; 
} 

//tried dumping 
dd($agents); 

よう が、それは動作しませんでしたので、私はそれがどんな結果を持っていた場合、私は今のように、1つの非管理者を持ってチェックする変数をダンプしようとした:そして、ここで出力

Collection {#219 ▼ 
#items: array:1 [▼ 
    0 => User {#222 ▼ 
     #casts: array:1 [▶] 
     #fillable: array:6 [▶] 
     #hidden: array:2 [▶] 
     #connection: null 
     #table: null 
     #primaryKey: "id" 
     #keyType: "int" 
     +incrementing: true 
     #with: [] 
     #perPage: 15 
     +exists: true 
     +wasRecentlyCreated: false 
     #attributes: array:10 [▶] 
     #original: array:10 [▶] 
     #dates: [] 
     #dateFormat: null 
     #appends: [] 
     #events: [] 
     #observables: [] 
     #relations: [] 
     #touches: [] 
     +timestamps: true 
     #visible: [] 
     #guarded: array:1 [▶] 
     #rememberTokenName: "remember_token" 
    } 
    ] 
} 
です

+0

....どのように多くの非管理者ユーザあなたが持っていますあなたのテーブルに?あなたはコレクションをエコーすることはできません。エコーは単純なもの、文字列、intなどのためだけに使用されます。 – lewis4u

+0

@ lewis4u私はすべての非管理者の詳細を取得しようとしています。私は現在、非管理者が1人いるが、その数は増えるだろう。私はforeachを使用してそれらを印刷したい –

答えて

3
$agents = User::where('is_admin','=', 'false')->pluck('value', 'agent'); 

foreach ($agents as $agent=>$value) { 
echo "{$agent}=>{$value}"."<br>"; 
} 

は、摘むあなたがオブジェクトを配列に変換します使用します。

あなたがモデルの他の属性にアクセスする必要がある場合、あなたはこのような何か行う必要があります:あなたはちょうどあなたがしたい属性が続く$agent->を使用する必要が

$agents = User::where('is_admin','=', 'false')->get(); 

foreach ($agents as $agent) { 
echo "{$agent->id}=>{$agent->name}"."<br>"; 
} 

この道を。

+0

pluckを使用すると、配列ではなくコレクションが返されます。 (Laravelバージョン5.3 ^より) – lewis4u

+0

@ lewis4uオブジェクトを含むコレクションの代わりに配列を持つコレクションを返します。 –

+0

@BigBossあなたのメソッドはうまく機能しませんでしたが、私はフィールド名を特にpluckの中に入れなければなりませんでした。とにかくそれを指定しなくてもすべてのフィールドを摘み取ることはありますか? –

1

あなたのコントローラは次のようにする必要があります助けてください:

public function index() { 

    $agents = User::where('is_admin','=', 'false')->get(); 
    return view('viewfile', compact('agents')); 
} 

そして、そのビューファイルにここでブレードビューで

@foreach ($agents as $agent) 
    {{ $agent->name }} 
@endforeach 
+0

ブレードはコントローラで動作しますか? –

+0

私はそれが私のコントローラ(foreachを使用している)で意図した通りに印刷することを確認した後で、変数にビューを渡そうとしています –

+0

Yupはそれを試みます、私は正しいデータを持っていることを確認しようとしていました。ビュー。私はなぜそれがコントローラで動作しないのだろうか? –

0

をforeachループを作る$agentsStd Class object arrayです。それにアクセスする要素はこれを試してください:あなたはforeachのあなたがkey => valueと望むように使用できるように

foreach ($agents as $agent) 
{ 
    $agent->name; 
} 
0

すべての非管理者についての情報をエコーするために、このコードを試してください:あなたがここにコレクションを返している...プリントアウトしたい何

$agents = User::where('is_admin','=', 'false')->get(); 

foreach ($agents as $agent) 
{ 
    foreach($agent as $property => $value) { 
     echo "{$property} => {$value}"."<br>"; 
    } 
    echo "<br/>----------------------<br/>"; 
}