Laravel |将一个集合映射为另一个集合的 属性
Laravel | Map one collection as property of another collection
我有一个 table 这样的:
CourseCategory
可以在这个 table 中有重复项,这意味着 courseCategory
可以有多个 courseNames
.
我正在像这样获取所有 courseCategory
:
$courseCategories = Course::all()->pluck('courseCategory')->unique();
但现在我想映射属于该集合中某个 courseCategory 的所有 courseName。
这样我就可以拥有一个 $courseCategories
,我希望能够像这样访问它:
foreach($courseCategories as $courseCategory){
foreach($courseCatgory->courseNames as name){
//code
}
}
得到这样一个$courseCategories
到目前为止我已经尝试过:
foreach ($courseCategories as $courseCategory) {
$courseCategories->$courseCategory = Course::where('courseCategory', '=', $courseCategory)->pluck('courseName');
}
dump($courseCategories);
看起来像这样不太正确:
我该怎么做?
先获取所有数据
$data = Course::all()
获取其类别
$categories = $data->pluck('courseCategory')->unique();
然后进行一些映射和过滤以获得每个子类别。
$result = $categories->map(function($category) use ($data) {
return $data->filter(function($row) use ($category) {
return $category == $row->courseCategory;
})->pluck('courseName');
});
我有一个 table 这样的:
CourseCategory
可以在这个 table 中有重复项,这意味着 courseCategory
可以有多个 courseNames
.
我正在像这样获取所有 courseCategory
:
$courseCategories = Course::all()->pluck('courseCategory')->unique();
但现在我想映射属于该集合中某个 courseCategory 的所有 courseName。
这样我就可以拥有一个 $courseCategories
,我希望能够像这样访问它:
foreach($courseCategories as $courseCategory){
foreach($courseCatgory->courseNames as name){
//code
}
}
得到这样一个$courseCategories
到目前为止我已经尝试过:
foreach ($courseCategories as $courseCategory) {
$courseCategories->$courseCategory = Course::where('courseCategory', '=', $courseCategory)->pluck('courseName');
}
dump($courseCategories);
看起来像这样不太正确:
我该怎么做?
先获取所有数据
$data = Course::all()
获取其类别
$categories = $data->pluck('courseCategory')->unique();
然后进行一些映射和过滤以获得每个子类别。
$result = $categories->map(function($category) use ($data) {
return $data->filter(function($row) use ($category) {
return $category == $row->courseCategory;
})->pluck('courseName');
});