【问题标题】:php error Trying to get property of non-objectphp错误试图获取非对象的属性
【发布时间】:2013-06-07 14:01:17
【问题描述】:

我有一张录取表格,它正在从数据库表中获取价值。场景是我有课程列表,学生选择一门课程,我在 URL 中传递课程 ID,然后使用此代码在字段中获取相应的课程名称:(该表单是在 joomla 中使用微风表单设计的。)

$this->execPieceByName('ff_InitLib');
$course_id= JRequest::getVar('CID');
global $database, $rec;
$database->setQuery("SELECT * FROM course_list WHERE record = '$course_id' AND name = 'CourseName'");
$row = $database->loadObjectList();
$rec = $row[0];
ff_setValue('ProsCourse', $rec->value);

很遗憾,我收到了这个错误:

* FACILEFORMS 发现的异常 * PHP 错误级别:E_NOTICE PHP 文件名:/home/web10385/public_html/**/components/com_breezingforms/facileforms.process.php(1219):eval() 的代码 PHP 行号:7 最后已知位置:在第 1 行形成自定义代码之前 错误消息:未定义的偏移量:0

* FACILEFORMS 发现的异常 * PHP 错误级别:E_NOTICE PHP 文件名:/home/web10385/public_html/**/components/com_breezingforms/facileforms.process.php(1219):eval() 的代码 PHP 行号:8 最后已知位置:在第 1 行形成自定义代码之前 错误信息:试图获取非对象的属性

上面的代码是之前的表单部分。

谢谢

【问题讨论】:

  • 我的回答解决了吗?

标签: php joomla2.5 breezingforms


【解决方案1】:

你不是在构造数据库对象......

你已经声明了$database,但是你还没有用一个对象初始化它......这就是问题......你似乎忘记了它。

因为在初始化之前,它是一个non-object 类型。而且您尝试使用它两次,因此出现了两个错误。

    global $database, $rec;
               ^^ uninitialized....
        $database->setQuery("SELECT * FROM course_list WHERE record = '$course_id' AND 
              ^^ but you are using it here....

        $row = $database->loadObjectList(.....
                ^^ here....

根据看到的信息,这可能是解决方案:

编辑:

$database=JFactory::getDbo();

【讨论】:

  • 但是这是 joomla 数据库已经被 joomla 初始化了可以请你具体说明我不是程序员
  • 我的意思是$database变量...但是你还没有初始化...如果它是由joomla初始化的,你为什么要再次声明它......要么你错过了什么,要么我'米....请发布您的完整代码...但我有点确定这就是原因....这就是您遇到的错误的含义
  • 从我从您当前的代码中看到的...$database 是一个新的全局变量.. 这不是初始化的地方,尽管您正在使用setQuery 方法...
【解决方案2】:

这是我所做的:

在表单中> 在表单之前添加此脚本:

$this->execPieceByName('ff_InitLib');
$course_id= JRequest::getVar('CID');

//intialize BF utilities
$this->execPieceByName('ff_InitUtilities');
global $database, $rec;
$database = ff_select('SELECT * FROM course_list WHERE record = '.$course_id.' ');
$rec = $database[0];

然后将此添加到 TEXT 字段(课程名称)的 VALUE 字段中:

<?php global $rec; return $rec->name; ?>

应该可以的。

和平。

【讨论】:

    猜你喜欢
    • 2014-05-08
    • 1970-01-01
    • 1970-01-01
    • 2020-12-05
    • 1970-01-01
    • 2013-04-11
    • 1970-01-01
    • 2018-05-23
    • 1970-01-01
    相关资源
    最近更新 更多