0
我有一個名爲的分類表,它存儲了我的電子商務網站的所有產品分類法。這是如何表:Laravel遞歸獲得分類的所有後代
+--------------+------------------+------+-----+---------+----------------+
| Field | Type | Null | Key | Default | Extra |
+--------------+------------------+------+-----+---------+----------------+
| id | int(10) unsigned | NO | PRI | NULL | auto_increment |
| name | varchar(20) | NO | UNI | NULL | |
| parent_id | int(10) unsigned | YES | MUL | NULL | |
| num_products | smallint(6) | NO | | 0 | |
+--------------+------------------+------+-----+---------+----------------+
現在給了一個分類標識,我怎麼遞歸獲得它的所有後代ID?到目前爲止,我的努力:
public function getAllTaxonomyOffspringIds($parent_id, $offspring_ids = array()) {
$taxonomy = Taxonomy::find($parent_id);
if (!is_null($taxonomy)) {
$first_generation_ids = $taxonomy->subtaxonomies()->lists('id');
$offspring_ids = array_merge($offspring_ids, $first_generation_ids);
if (count($first_generation_ids) > 0) {
foreach ($first_generation_ids as $child_id) {
self::getAllTaxonomyOffspringIds($child_id, $offspring_ids);
}
// foreach ($first_generation_ids as $child_id) {
// $child_taxonomy = Taxonomy::find($child_id);
// if (!is_null($child_taxonomy)) {
// $second_generation_ids = $child_taxonomy->subtaxonomies()->lists('id');
// $offspring_ids = array_merge($offspring_ids, $second_generation_ids);
// if (count($second_generation_ids)) {
// }
// }
// }
}
}
return $offspring_ids;
}
但它給我的只有第一代兒童的IDS ...