laravel |雄辩的foreach不工作

时间:2017-04-07 06:27:22

标签: php laravel foreach eloquent laravel-5.4

我正在尝试从用户表中检索所有非管理员用户。 像这样

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

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

//tried dumping
dd($agents);

但它没有工作,所以我尝试转储变量以检查它是否有任何结果,我现在有一个非管理员:这是输出

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"
    }
  ]
}

请帮助

5 个答案:

答案 0 :(得分:4)

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

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

使用pluck,您可以将对象转换为数组,因此您可以使用key => value以您希望的方式使用foreach。

如果您需要访问模型的其他属性,则需要执行以下操作:

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

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

这样您只需使用$agent->,然后使用您想要的属性。

答案 1 :(得分:1)

您的控制器应该像:

public function index() {

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

然后在该视图文件中,在刀片视图中创建foreach循环

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

答案 2 :(得分:0)

此处$agentsStd Class object array。所以访问它的元素试试这个:

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

答案 3 :(得分:0)

尝试使用此代码来回显有关所有非管理员的信息:

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

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

答案 4 :(得分:0)

如果您有一个类似$items = items::all();的查询,但是又想从集合中获取一个特定的值,例如$items->barcode怎么办?

尝试dd($ items)时,这些项以数组形式返回,这要求我知道每个ID才能获得适当的结果($items[id]->barcode)

我猜答案将是一个foreach循环?