Php 用ORM风格在CodeIgniter中编写一个模型类
我曾考虑过使用一种类似ORM的理论,后来我发现它的下载链接甚至被破坏了……所有在线教程都可以追溯到2011年。我还得写yaml文件 然后我开始尝试用ORM风格编写自己的模型类 我只是用字段填充它并将其保存到数据库中,这很简单 但我在尝试从数据库检索数据时遇到了一个问题 我知道通常在CodeIgniter中,您返回Php 用ORM风格在CodeIgniter中编写一个模型类,php,codeigniter,Php,Codeigniter,我曾考虑过使用一种类似ORM的理论,后来我发现它的下载链接甚至被破坏了……所有在线教程都可以追溯到2011年。我还得写yaml文件 然后我开始尝试用ORM风格编写自己的模型类 我只是用字段填充它并将其保存到数据库中,这很简单 但我在尝试从数据库检索数据时遇到了一个问题 我知道通常在CodeIgniter中,您返回$query->result(),以及ORM custom,我试图返回一个对象……有什么方法可以做到这一点吗?我应该使用什么功能 获取一个表示类的字符串,该类将实例化并分配结果数据(每
$query->result()
,以及ORM custom,我试图返回一个对象……有什么方法可以做到这一点吗?我应该使用什么功能 获取一个表示类的字符串,该类将实例化并分配结果数据(每个字段作为对象的属性):
关于您的评论,我非常确定您将传递到
result
方法。它看起来只是实例化了它,并为从db返回的每个列/值设置属性和值:
$this->custom_result_object[$class_name][$i] = new $class_name();
foreach ($this->{$_data}[$i] as $key => $value)
{
$this->custom_result_object[$class_name][$i]->$key = $value;
}
一个与codeIgniter配合得很好的ORM是基于离线活动记录模型的 您试图复制“通过电子邮件搜索”的功能是通过
Late static binding method.
因此,您可能会看到这样调用的函数:
Object::find_by_email()
Object::search_by_email()
我以前不知道这个。快速问题:CodeIgniter是否使用字段读取我预先建立的用户类,并使用$query result填充这些字段?CodeIgniter如何知道哪个数据库字段与我的类中的字段相对应?您可以通过Sparks成功地安装它吗?似乎我的不起作用(安装后…)我实际上非常努力地让php activerecord工作…我使用Spark从autoload“$autoload['sparks']=array('php-activerecord/0.0.2');”安装并加载它,并尝试测试它是否与“echo'”;var_dump(test::all());exit;“我的页面上没有显示任何内容。”(是的,我已经创建了一个测试模型文件)您是否在core中包含了加载程序文件/它现在可以工作了!不是很符合我的想象-我仍然需要手动创建数据库表,但感谢您的帮助。
Late static binding method.
Object::find_by_email()
Object::search_by_email()