php – Laravel很多人只从关系中获取一个值

我在Expense和Tag之间有很多关系.现在我想只从与费用相关的所有标签中获取名称.

所以,假设我有一个费用:

$expense = Expense::first();

现在我可以轻松抓取所有标签:

$tags = $expense->tags;

这将给我一组标签.理想情况下,我想要一个标记名称数组:

array:5 [▼
  0 => "tag1"
  1 => " tag2"
  2 => " tag3"
  3 => " tag4"
  4 => " tag5"
]

现在我可以通过这样做来实现这一点:

$tags = $expense->tags;

$new_tags = [];

foreach($tags as $tag)
{
    $new_tags[] = $tag->name;
}

但是有一种更清洁的方式,特别是不必使用foreach吗?我试过这样的事情:

$tags = $expense->tags->value('name')->toArray();

$tags = $expense->tags()->value('name')->toArray();

但两者都不起作用.有没有办法让这个工作?

解决方法:

试试这个

$tags = $expense->tags->pluck('name')->toArray();

要么

$tags = $expense->tags->pluck('name')->all();
上一篇:批量插入或更新操作之ON DUPLICATE KEY UPDATE用法


下一篇:广度优先搜索算法