Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/vue.js/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 数据库查询正在运行。类移动到lib/model_Php_Oop_Symfony1_Doctrine_Symfony 1.4 - Fatal编程技术网

Php 数据库查询正在运行。类移动到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(); } 现在有:

我有:

我在lib/model中执行了以下操作:

  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);我有:注意:未定义变量:消息