[英]Returning the query or the result in Codeigniter
获取数据库并返回查询对象或result / result_array的利弊是什么?
$query = $this->db->get('mytable');
return $query;
与
$query = $this->db->get('mytable');
return $query->result; //or result_array()
我知道,如果您返回查询对象,它将使开发人员可以灵活地获取她想要的任何类型的资源。 但这可能会导致代码设计中的更多歧义。
什么是最佳做法?
我猜这取决于您需要使用它,对其进行进一步处理或向用户显示。 如果必须在视图中显示简单的结果,我宁愿返回结果,否则,如果需要更多的“复杂”处理,则可以返回查询对象。
您应该返回结果对象或数组,因为以后您可以在不更改函数行为的情况下对其进行修改并在其中包含更多数据。
让我举一个例子:
getTopic($ id)假定此函数根据某些课件的课件ID返回所有主题。 稍后,您可能还需要统计各个主题。 在返回结果对象或数组的情况下,它更容易实现; 只需再添加一个索引即可。
同样,如果您只想拥有查询对象,则可以直接从控制器中调用它,这需要通过函数进行路由。 函数调用意味着您希望处理的数据(现在或以后)不是查询的直接输出。
我更喜欢传递查询对象,因为它可以直接传递给$this->table->generate($query)
并将包含列标题,而如果传递result()
或result_array()
则会丢失标题。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.