php - 拉维 | Eloquent foreach不工作

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

请帮忙

最佳答案

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

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

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

如果你需要访问模型的其他属性,你需要做这样的事情:

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

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

这样你只需要使用 $agent-> 后跟你想要的属性。

关于php - 拉维 | Eloquent foreach不工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/43271110/

相关文章:

PHP-ODBC 驱动程序安装问题

php - 读取路由函数中的 Blade 变量

PHP:foreach 循环与 array_merge 来创建 json 对象

php - 为什么 foreach 循环输出两组 li 标签?

java - Intellij IDEA : show implied iterator object in java debugger

php - PDO 更新 : Syntax error or access violation

PHP全局关键字语法错误

javascript - 如何使 laravel 中的对象在 JavaScript laravel blade 中使用?

php - 如何将对象从事件的监听器传递到同一事件的另一个监听器

laravel - $this->attributes 和 $this->original 有什么区别