laravel | eloquent foreach 不工作
laravel | eloquent foreach not working
我正在尝试从我的用户 table 中检索所有非管理员用户。
像这样
$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"
}
]
}
请帮忙
你的控制器应该是这样的:
public function index() {
$agents = User::where('is_admin','=', 'false')->get();
return view('viewfile', compact('agents'));
}
然后在该视图文件中在 blade 视图
中创建 foreach 循环
@foreach ($agents as $agent)
{{ $agent->name }}
@endforeach
这里$agents
是一个Std Class object array
。所以访问它的元素试试这个:
foreach ($agents as $agent)
{
$agent->name;
}
$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
和 ->
后跟你想要的属性。
尝试使用此代码来回显有关所有非管理员的信息:
$agents = User::where('is_admin','=', 'false')->get();
foreach ($agents as $agent)
{
foreach($agent as $property => $value) {
echo "{$property} => {$value}"."<br>";
}
echo "<br/>----------------------<br/>";
}
如果您有一个类似 $items = items::all();
的查询,但又想从集合中获取特定值,例如 $items->barcode
,该怎么办?
当尝试 dd($items) 时,项目以数组形式返回,这需要我知道每个 ID 才能获得适当的结果 ($items[id]->barcode)
。
我猜答案是有一个 foreach 循环?
我正在尝试从我的用户 table 中检索所有非管理员用户。 像这样
$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"
}
]
}
请帮忙
你的控制器应该是这样的:
public function index() {
$agents = User::where('is_admin','=', 'false')->get();
return view('viewfile', compact('agents'));
}
然后在该视图文件中在 blade 视图
中创建 foreach 循环@foreach ($agents as $agent)
{{ $agent->name }}
@endforeach
这里$agents
是一个Std Class object array
。所以访问它的元素试试这个:
foreach ($agents as $agent)
{
$agent->name;
}
$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
和 ->
后跟你想要的属性。
尝试使用此代码来回显有关所有非管理员的信息:
$agents = User::where('is_admin','=', 'false')->get();
foreach ($agents as $agent)
{
foreach($agent as $property => $value) {
echo "{$property} => {$value}"."<br>";
}
echo "<br/>----------------------<br/>";
}
如果您有一个类似 $items = items::all();
的查询,但又想从集合中获取特定值,例如 $items->barcode
,该怎么办?
当尝试 dd($items) 时,项目以数组形式返回,这需要我知道每个 ID 才能获得适当的结果 ($items[id]->barcode)
。
我猜答案是有一个 foreach 循环?