我正在尝试实现几年前在 Ruby on Rails 中所做的事情。
现在我正在使用 CodeIgniter 3.0.0。
下面概述了我想要实现的目标:
表:
表:用户表:文章 _________________ _______________________________________ | 编号 | 姓名 | | 编号 | 描述 | 买家 | 申请人 | | 1 | 约翰 D. | | 1 | 电脑鼠标 | 1 | 2 | | 2 | 安妮塔 F。
我想实现这一点:(或类似的东西)
大批
(
[0] => 标准类对象
(
[id] => 1
[描述] => 'PC 鼠标'
[买家] => 标准类对象
(
[id] => 1
[名称] => '约翰 D.'
)
[申请人] => stdClass 对象
(
[id] => 2
[名称] => '安妮塔 F.'
)
)
)
所以我可以打电话:
回声$文章->描述;//=> 电脑鼠标 echo $article->买家->姓名;//=> 约翰 D. echo $article->申请人->姓名;//=> 安妮塔 F.
我试过(没有运气):
$this->db->from('articles');
$this->db->join('users', 'articles.buyer = users.id');
$this->db->join('users'.'articles.applicant = users.id');
$objects = $this->db->get()->result_object();
//=> 抛出:
错误 1066:
不是唯一的表/别名:“用户”
$this->db->from('articles');
$this->db->join('users', 'articles.buyer = users.id');
$objects = $this->db->get()->result_object();
//=> 返回一个额外的列 'name',其值为 'John D.'
大批
(
[0] => 标准类对象
(
[id] => 1
[描述] => 'PC 鼠标'
[买家] => 1
[申请人] => 2
[名称] => '约翰 D.'
)
)
我读了很多关于group_by,但我无法让它工作。
你能帮我解决这个问题吗?
这甚至可能是一个解决方案,还是有可能?!
侧面信息
这是我需要的一个精简示例。我还有很多连接要做。
这是我最终应该拥有的:
购买有很多文章(articles.purchasesID) 文章有一个状态(statusID) 文章有一个品牌(brandID) 购买有一个买家 (usersID) 购买有一个申请人(usersID) 购买有一个状态(statusID) 购买有一个 Delivered_to (usersID) 采购有一个供应商 (suppliersID) 购买有一个顾虑(concernsID // 当我想回显一篇文章的状态时: // 状态有一个 'id' 和 'name' 所以: echo $purchase->article[0]->status->name //=> '处理中' // 或者当我想知道产品交付给谁时: echo $purchase->delivered_to->name //=> 'Carsten'
希望你能帮我!