我刚刚在我的项目中发现了一些奇怪的东西。我正在使用 PHP7.3,我正在尝试将array_column()函数与对象一起使用。我正在使用命令来调用 symfony 项目中的服务 - 如果这很重要,但是我已将我的代码简化到最低限度。文章.php:class Article { private $id; private $category; public function __construct() { $this->category = new ArrayCollection(); } public function getCategory(): Collection { return $this->category; } public function addCategory(ArticleCategory $category): self { if (!$this->category->contains($category)) { $this->category[] = $category; } return $this; } public function removeCategory(ArticleCategory $category): self { if ($this->category->contains($category)) { $this->category->removeElement($category); } return $this; }}ArticleCategory.phpclass ArticleCategory{ private $id; private $name; public function getName(): ?string { return $this->name; } public function setName(string $name): self { $this->name = $name; return $this; }我正在尝试将文章的类别作为数组获取 - 对于这种情况,我使用以下内容:$categories = array_column($a->getCategory(), 'name'); //$a is the article object但是,这会引发以下警告: Warning: array_column() expects parameter 1 to be array, object given我已经尝试过的private $name公开_添加功能__get()并__isset()使用private $name但是,这些都不适合我。即使 array_column 应该与 PHP >7 中的对象一起使用?我很感激任何帮助
1 回答
宝慕林4294392
TA贡献2021条经验 获得超8个赞
如果你需要数组使用这个$categories = $a->getCategory()->toArray();
如果您需要类别名称数组 - 使用数组映射
$categoriesName = $a->getCategory()->map(function(ArticleCategory $category) {
return $category->getName();
});
- 1 回答
- 0 关注
- 504 浏览
添加回答
举报
0/150
提交
取消
