嗨,我的应用程序中的 foreach 循环中有很多 Eloquent 查询,我试图尽可能避免这种做法。
例子:
$statuses = Statuses::get(); // or Statuses::all(); // What's the difference because I use them mixed?
$statusList = [];
foreach ($statuses as $status) {
$statusList[$status->id] = $status->status_title;
} // How do I just get my array of the id => status_title in single Eloquent query?
// Return $statusList to use in my select drop-down...
我有更多的领域我正在使用 foreach 来获得我想要的东西,在其中一些我查询可能 10 到 100 次 - 这是我现在根据不同的 Stack Overflow 答案尝试的内容:
$statuses = $statuses->map->only(['id', 'status_title']);
但这并没有给我我需要的数组格式,我需要一维 [id] => [title] 但是那个给我列名。来源:仅从 Laravel 集合中获取特定属性
谢谢
谢谢!尝试这个给了我主键作为数组键和状态标题作为没有列名的值。抱歉,我刚刚意识到这个示例在 foreach 中没有查询。
我还有一个不知道该怎么做的问题:现在我想连接一些列,例如:
$statusList = Status::pluck('status_title', 'status_outcome', 'id'));
$array = $statusList->all();
what I'm trying to do is [id] => [status_title . ' ' . status_outcome]
所以基本上我将我的数组键作为主键 ID,将值作为连接的标题和结果?
请帮助我在使用 ->pluck() 方法时遇到问题:
Statuses::select("CONCAT('status_title', ' - ', 'status_outcome') AS status, id")->pluck('status', 'id')->all();
尝试获取数组但 pluck() 在我的不同查询中表现不同,有时我会收到错误。我也试图采摘超过 2 列它给出了一个错误,例如
Statuses::pluck('status_title', 'status_outcome', 'id')->all() I also tried ->get() and ->toArray()