【问题标题】:Codeigniter Aliase not working in ViewsCodeigniter 别名在视图中不起作用
【发布时间】:2015-04-30 06:18:10
【问题描述】:

我在 codeigniter 中编写了很多代码,但我不得不重新构造我的数据库列前缀,当我使用连接查询来连接我的模型查询中的一些表时,一个查询中的一些表具有相同的 id 列,我使用 Alias 'As alias1' 作为表名,模型运行成功,没有问题

但是当我将$q = $this->db->get() 变量传递给我的控制器,然后将它传递给我的视图并像这样迭代它时:

foreach($q->result() as $res)
   echo $res->alias1.id;

未知$alias1.id 的php 错误,但我为我的一张表声明了alias1

有什么问题? 谢谢

【问题讨论】:

  • 你能写出你在$q得到的结果吗
  • 你的问题没有足够的信息。请写下你的模型(查询)并查看

标签: php mysql codeigniter web


【解决方案1】:

当您执行->result() 时,CI 将构建一个对象数组。 在您的选择中声明的每一列都将是一个对象成员。但是,不会保留别名。

这意味着SELECT alias.field将被转换为$obj->field而不是$obj->alias.field

如果您有两个同名的字段,请在 SELECT 子句中设置别名

$this->db->select("alias1.field as myfield, alisas2.field as myotherfield");

然后你就可以通过$obj->myfield$obj->myotherfield获得它们

【讨论】:

  • 但这是否意味着无法在视图中直接使用别名?
  • 是的,你可以,这就是我在回答的第二部分中试图解释的内容,并在 select 子句中设置别名。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-10-14
相关资源
最近更新 更多