我正在尝试实现几年前在 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'
希望你能帮我!