Php 数据库查询正在运行。类移动到lib/model
我有: 我在lib/model中执行了以下操作:Php 数据库查询正在运行。类移动到lib/model,php,oop,symfony1,doctrine,symfony-1.4,Php,Oop,Symfony1,Doctrine,Symfony 1.4,我有: 我在lib/model中执行了以下操作: public function executeTest(sfWebRequest $request) { $query = Doctrine_Query::create() ->from('Messages') ->where('id = ?', $id); $query->fetchArray(); } 现在有:
public function executeTest(sfWebRequest $request)
{
$query = Doctrine_Query::create()
->from('Messages')
->where('id = ?', $id);
$query->fetchArray();
}
现在有:
public function newfunction($id)
{
$query = Doctrine_Query::create()
->from('Messages')
->where('id = ?', $id);
return $query->fetchArray();
}
但我有一个错误:
sfException:调用未定义的方法messagesActions::newfunction
如果:
我有
致命错误:对中的非对象调用成员函数newFunction()
我能做什么?我想您这里的问题是,您使用了一个非静态方法,以便使用查询获取对象,“this”引用为您提供了一个sfAction实例:
public function executeTest(sfWebRequest $request)
{
$this->newfunction($id);
}
我建议将模型类中的newfunction声明更改为如下内容(在/lib/model/doctor/MessagesTable.class.php中创建此函数):
现在,您的操作应该如下所示:
public static newfunction($id)
{
$query = Doctrine_Query::create()
->from('Messages')
->where('id = ?', $id);
return $query->fetchArray();
}
MessagesTable::getInstance()->newFunction($id);
我认为这里的问题在于,您使用了一个非静态方法,以便使用查询获取对象,“this”引用在以下位置为您提供了一个sfAction实例:
public function executeTest(sfWebRequest $request)
{
$this->newfunction($id);
}
我建议将模型类中的newfunction声明更改为如下内容(在/lib/model/doctor/MessagesTable.class.php中创建此函数):
现在,您的操作应该如下所示:
public static newfunction($id)
{
$query = Doctrine_Query::create()
->from('Messages')
->where('id = ?', $id);
return $query->fetchArray();
}
MessagesTable::getInstance()->newFunction($id);
我假设您在lib/model/MessagesTable.class.php
中创建了newFunction
$this->newFunction()
不起作用,因为$this
引用的是当前动作实例,而不是模型的表。您需要使用以下任一选项:
public function executeTest(sfWebRequest $request)
{
[..]//i'm assuming that id is set somewhere before this and is valid
MessagesTable::newfunction($id);
}
或
他们都做同样的事情,所以这只是偏好的问题
另外,您没有在操作的代码中为$id
设置值。我假设您在lib/model/MessagesTable.class.php
中创建了newFunction
$this->newFunction()
不起作用,因为$this
引用的是当前动作实例,而不是模型的表。您需要使用以下任一选项:
public function executeTest(sfWebRequest $request)
{
[..]//i'm assuming that id is set somewhere before this and is valid
MessagesTable::newfunction($id);
}
或
他们都做同样的事情,所以这只是偏好的问题
此外,您没有在操作代码中为$id
设置值。为什么不利用条令提供的“神奇方法”
该查询可以如下所示:
public static newfunction($id)
{
$query = Doctrine_Query::create()
->from('Messages')
->where('id = ?', $id);
return $query->fetchArray();
}
MessagesTable::getInstance()->newFunction($id);
然后,您就不需要定义新方法了。
要了解更多信息,请查看条令的de文档页面,进入de您为什么不利用条令提供的“神奇方法”
该查询可以如下所示:
public static newfunction($id)
{
$query = Doctrine_Query::create()
->from('Messages')
->where('id = ?', $id);
return $query->fetchArray();
}
MessagesTable::getInstance()->newFunction($id);
然后,您就不需要定义新方法了。
要了解更多信息,请查看条令的de文档页面,进入de添加static没有帮助。什么是FunctionClass::?您提到在lib/model中创建函数,但没有在witch类中指定,因此我使用FunctionClass来定义在witch中创建该方法/lib/model/doctor/MessagesTable.class.php的函数的类名。当我创建$this->newfunction($id)时;我有:调用未定义的方法planActions::updatePlans。如果$messages->newfunction($id);我有:注意:未定义变量:添加static的消息没有帮助。什么是FunctionClass::?您提到在lib/model中创建函数,但没有在witch类中指定,因此我使用FunctionClass来定义在witch中创建该方法/lib/model/doctor/MessagesTable.class.php的函数的类名。当我创建$this->newfunction($id)时;我有:调用未定义的方法planActions::updatePlans。如果$messages->newfunction($id);我有:注意:未定义变量:消息