Laravel ::all() 命令只返回 1 条记录
Posted
技术标签:
【中文标题】Laravel ::all() 命令只返回 1 条记录【英文标题】:Laravel ::all() command only returns 1 record 【发布时间】:2021-12-28 09:10:20 【问题描述】:大家好,我正在尝试使用 $pools = \App\pool::all();
从我的数据库中的表中获取所有记录
数据库目前有3条记录,但只返回第一条记录
foreach($pools as $pool)
return $pool;
"poolId":1,"poolName":"TestPool","pAdminId":70,"poolStatus":1,"created_at":"2021-11-17 08:06:57","updated_at":"2021-11-17 08:06:57"
在使用 ::all() 之前,这不是问题 使用时也是如此
$pools = \App\Pool::where('pAdminId',$user->id)->get();
$user->id 返回 70,这也发生在我的另一个 Poolmembers 表中,两者都是使用 php artisan make:model 命令创建的,并回滚一次以更改数据类型,然后再次迁移。
pool 的模型如下所示
namespace App;
use Illuminate\Database\Eloquent\Model;
class Pool extends Model
//
protected $primaryKey = 'poolId';
protected $fillable = ['poolId', 'poolName', 'pAdminId', 'poolStatus'];
任何帮助将不胜感激
谢谢
【问题讨论】:
请分享你的模型 Pool<?php namespace App; use Illuminate\Database\Eloquent\Model; class Pool extends Model // protected $fillable = ['poolId', 'poolName', 'pAdminId', 'poolStatus'];
的模型如下所示
@armand 用代码编辑问题,不要放在 cmets 中
刚刚更新
您在 foreach 循环中使用 return 将在第一个循环中停止执行
【参考方案1】:
Armand,您在 for 循环中使用了 return。 由于它只显示一条记录,因为它返回数组的第一个索引。 试试这个
foreach($pools as $pool)
echo $pool->poolId; //it will return id of each record;
【讨论】:
【参考方案2】:你只能在一个函数中得到一个 return 语句,所以如果你把 return 放在循环中,函数的执行就会停止。 https://www.php.net/manual/en/function.return.php
foreach($pools as $pool)
echo $pool->poolId;
如果您想跳过或中断 PHP 中的迭代,您可以在循环中使用 continue
或 break
。
【讨论】:
以上是关于Laravel ::all() 命令只返回 1 条记录的主要内容,如果未能解决你的问题,请参考以下文章
Laravel 4:Input::all() 使用 $.ajax POST 不返回任何数据
Laravel Get() Cursor() Chunk() Offset()