Problem: The code is as follows: {code ...} {code ...} result output: Duplicate data is obtained. if the list contains departments, the data will be repeated. how can this problem be solved? The result I need is that every call can get the id of all sub-departments under the current department, in the shape of a one-dimensional array...
Problem:
The code is as follows:
// Search for the public static function actionSon ($ company_id, $ id) {global $ temp; $ modelClass = self: find () of all subordinate departments () -> where (['parent _ id' => $ id, 'company _ id' => $ company_id])-> all (); if (! Empty ($ modelClass) {foreach ($ modelClass as $ k => $ value) {$ temp [] = $ value-> id; self: actionSon ($ company_id, $ value-> id); // call the function, pass in the parameter, and continue querying the lower-level} return $ temp ;}
In fields, call public function fields () {return ['id', 'company _ id' 'user _ count' => function () {// return $ this-> getUserCount (); $ dep_ids = self: actionSon ($ this-> company_id, $ this-> id ); // $ GLOBALS ['temp '] = []; // unset ($ temp); print_r ($ dep_ids) ;},] ;}
Result output:
Duplicate data is obtained. if there are still departments in the list, the data will be repeated. how can this problem be solved?
The result I need is that the id of all sub-departments under the current department can be obtained every call and displayed in a one-dimensional array.
Open $ GLOBALS ['temp '] = []; and you can only find the level 1.
Reply content:
Problem:
The code is as follows:
// Search for the public static function actionSon ($ company_id, $ id) {global $ temp; $ modelClass = self: find () of all subordinate departments () -> where (['parent _ id' => $ id, 'company _ id' => $ company_id])-> all (); if (! Empty ($ modelClass) {foreach ($ modelClass as $ k => $ value) {$ temp [] = $ value-> id; self: actionSon ($ company_id, $ value-> id); // call the function, pass in the parameter, and continue querying the lower-level} return $ temp ;}
In fields, call public function fields () {return ['id', 'company _ id' 'user _ count' => function () {// return $ this-> getUserCount (); $ dep_ids = self: actionSon ($ this-> company_id, $ this-> id ); // $ GLOBALS ['temp '] = []; // unset ($ temp); print_r ($ dep_ids) ;},] ;}
Result output:
Duplicate data is obtained. if there are still departments in the list, the data will be repeated. how can this problem be solved?
The result I need is that the id of all sub-departments under the current department can be obtained every call and displayed in a one-dimensional array.
Open $ GLOBALS ['temp '] = []; and you can only find the level 1.