【发布时间】:2023-03-16 20:20:01
【问题描述】:
我正在使用 MY_model 和 Codeigniter-base-model。我无法让基本关系正常工作。我搜索了很多,但找到了解决方案。
首先,我有 2 个课程 item_model.php 和 user_model.php 都扩展了 MY_Model。
在item_model 类中我已经定义了
public $belongs_to = array( 'user' => array( 'model' => 'user_model') );
在user_model
public $has_many = array( 'items' => array( 'model' => 'item_model') );
现在,当我调用时在控制器中
$item_details = $this->item_model->with('user')->find_by_id($item_id);
我正在获取$item_details 的正确数据,但我无法从“用户”关系中获取信息。 $item_details->user_id->username;.
我收到以下错误
消息:试图获取非对象的属性
表是标准的
users table has id, username, ...
item table has id, user_id, title...
user_id is is setUp as FK to users.id.
请帮忙。
【问题讨论】:
-
find_by_id方法是什么? -
感谢@JamieRumbelow 的回复。我已经在 MY_model 中编写了自己的函数,您能否告诉我这应该如何工作?
-
那么,您是否使用内置的finder 方法来获取数据?如果不是,则不会调用观察者,因此没有适当地选择关系。恐怕我需要查看一些代码来帮助你。
-
P.S.不要直接编辑 MY_Model,创建一个 Base_Model 类或从 MY_Model 扩展的东西。如果你以后想更新 MY_Model 会很痛苦。
-
知道了,我也这样做了。谢谢。
标签: php codeigniter relationship has-many belongs-to