确定什么是chlid的水平php
问题描述:
我想获得父母的孩子关系,并成功得到,但我坚持如何确定什么是儿童的水平。确定什么是chlid的水平php
这里是我的代码
public function getDownline($userid = null) {
$category_data = array();
$where = array('parent_id' => $userid);
$this->db->where($where);
$category_query = $this->db->get('users')->result();
$category_data = array();
foreach ($category_query as $category) {
$category_data[$category->id] = array($category);
$children = $this->getDownline($category->id);
if ($children) {
$category_data[$category->id]['children'] = $children;
}
}
return $category_data;
}
下面是我的表结构
我这种格式
[1136] => Array
(
[0] => stdClass Object
(
[id] => 1136
[gid] => 4
[parent_id] => 1112
[username] => test
[email] => [email protected]
[name] => test
[status] => 1
[registerd] => 2017-04-20 08:49:25
[last_login] => 2017-04-21 10:42:25
[password] => 4eca045dfa240f56a1f9d45eaa53b71c6eccd6a7
[tranjection_password] =>
)
[children] => Array
(
[1148] => Array
(
[0] => stdClass Object
(
[id] => 1148
[gid] => 4
[parent_id] => 1136
[username] => test_downline
[email] => [email protected]
[name] => test_downline
[status] => 1
[registerd] => 2017-04-21 10:42:56
[last_login] => 2017-04-21 11:08:00
[password] => 4eca045dfa240f56a1f9d45eaa53b71c6eccd6a7
[tranjection_password] =>
)
[children] => Array
(
[1150] => Array
(
[0] => stdClass Object
(
[id] => 1150
[gid] => 4
[parent_id] => 1148
[username] => test1_downline1
[email] => [email protected]
[name] => test1_downline1
[status] => 1
[registerd] => 2017-04-21 11:08:27
[last_login] => 0000-00-00 00:00:00
[password] => 4eca045dfa240f56a1f9d45eaa53b71c6eccd6a7
[tranjection_password] =>
)
)
)
)
[1149] => Array
(
[0] => stdClass Object
(
[id] => 1149
[gid] => 4
[parent_id] => 1136
[username] => test_downline2
[email] => [email protected]
[name] => test_downline2
[status] => 1
[registerd] => 2017-04-21 11:06:35
[last_login] => 0000-00-00 00:00:00
[password] => 4eca045dfa240f56a1f9d45eaa53b71c6eccd6a7
[tranjection_password] =>
)
)
)
)
答
,我认为你应该这样做让输出这里的对象上下文 等等mething像应工作
class Users_Model extends CI_Model
{
public function getDownline(User_Object $obj, $level = 0)
{
$obj->level = $level;
$where = array('parent_id' => $obj->id);
$this->db->where($where);
$query = $this->db->get('users')->result("User_Object");
foreach ($query as $objUser)
{
$obj->add($objUser);
$this->getDownline($objUser, ($level+1));
}
return $obj;
}
public function downline_income($userId = null, $offset = 0)
{
$userId = user::id();
$objUser = new User_Object;
$objUser->id = $userId;
$downline = $this->user->getDownline($objUser);
}
}
class User_Object
{
private $children = [];
public $level = 0;
public function add(User_Object $obj)
{
$this->children[] = $obj;
}
}
收到错误:致命错误:调用未定义的方法stdClass的::加入() –
你如何从控制器调用getDownline功能?给我看你的代码请输入 – sintakonte
'public function downline_income($ userId = null,$ offset = 0){userId = user :: id(); $ downline = $ this-> user-> getDownline($ userId);' –