【问题标题】:Codeigniter undefined variable when "get", but not when "get_where"“get”时Codeigniter未定义变量,但“get_where”时没有
【发布时间】:2017-08-04 09:42:43
【问题描述】:

我有点困惑。我正在阅读教程(非常清楚)。 我尝试使用$this->db->where() 方法进行单行查询,效果很好。但是当我在方法中使用带有$this->db->get() 的多行时,它返回“未定义的变量”

mproyecto.php(模型)

class Mproyecto extends CI_Model{    

  public function __construct()
  {
    parent::__construct();
    //Codeigniter : Write Less Do More
  }

  function get($id){
    return $this->db->get_where('proyectos', array('id' => $id))->row();
  }

  function getAll(){
    $proyectos = $this->db->get('proyectos');
    return $proyectos->result();
  }
}

cproyecto.php(控制器)

class Cproyecto extends CI_Controller{

  public function __construct()
  {
    parent::__construct();
    //Codeigniter : Write Less Do More    
  }

  function index()
  {
    $this->load->model('mProyecto','Proyecto');
    $data['proyecto'] = $this->Proyecto->getAll();    
    $this->load->view('proyecto/vproyecto', $data);
  }
}

vproyecto(查看)

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <title></title>
  </head>
  <body>
    <?php foreach ($proyecto as $d){?>
    <h1><?php echo $d->$nombre; ?></h1>
    <h2><?php echo $d->$descripcion; ?></h2>
    <h3>Horas: <?php echo $d->$horas_totales; ?></h3>
    <h4>Fecha limite: <?php echo date("d-m-Y", strtotime($d->$deadline)); ?></h4>
    <?php } ?>
  </body>
</html>

它抛出:

遇到了 PHP 错误

严重性:通知

消息:未定义的变量:名词

文件名:proyecto/vproyecto.php

行号:9

回溯:

文件: C:\xampp\htdocs\teamworkplus\application\views\proyecto\vproyecto.php 行:9 函数:_error_handler

文件: C:\xampp\htdocs\teamworkplus\application\controllers\cproyecto.php 行:18 功能:查看

文件:C:\xampp\htdocs\teamworkplus\index.php 行:315 功能: 需要一次

致命错误:无法访问空属性 C:\xampp\htdocs\teamworkplus\application\views\proyecto\vproyecto.php 在第 9 行遇到 PHP 错误

严重性:错误

消息:无法访问空属性

文件名:proyecto/vproyecto.php

行号:9

回溯:

【问题讨论】:

  • 让它像这样$d-&gt;nombre。删除$
  • @UnsignedFoo 如果可能的话,请编辑问题标题,因为它与getget_where无关

标签: php mysql codeigniter


【解决方案1】:

从属性名称中删除$ 符号

 <?php foreach ($proyecto as $d){?>
    <h1><?php echo $d->nombre; ?></h1>
    <h2><?php echo $d->descripcion; ?></h2>
    <h3>Horas: <?php echo $d->horas_totales; ?></h3>
    <h4>Fecha limite: <?php echo date("d-m-Y", strtotime($d->deadline)); ?>
   </h4>
 <?php } ?>

【讨论】:

  • 哇!那成功了!谢谢!我觉得有点尴尬
  • @JYoThi - $d-$ 应该是 $d-> :)
【解决方案2】:

你可以这样写你的view代码

<?php foreach ($proyecto as $d){?>
    <h1><?php echo $d->nombre; ?></h1>
    <h2><?php echo $d->descripcion; ?></h2>
    <h3>Horas: <?php echo $d->horas_totales; ?></h3>
    <h4>Fecha limite: <?php echo date("d-m-Y", strtotime($d->deadline)); ?></h4>
    <?php } ?>

$d-&gt;$nombre 错误的nombre 未与$ 符号一起使用

所以用$符号改变所有变量

【讨论】:

    猜你喜欢
    • 2023-03-05
    • 2023-03-17
    • 2013-04-28
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多