Php 找不到类

Php 找不到类,php,phalcon,Php,Phalcon,我做了一项研究,但结果与我的问题无关:我有一个模型,它的关联表包含一个下划线 <?php use Phalcon\Mvc\Model; use Phalcon\Mvc\Model\Query; class TableClient extends Model { public function getSource() { return "table_client"; } function lireParCritere($critere)

我做了一项研究,但结果与我的问题无关:我有一个模型,它的关联表包含一个下划线

<?php

use Phalcon\Mvc\Model;
use Phalcon\Mvc\Model\Query;

class TableClient extends Model {

    public function getSource()
    {
        return "table_client";
    }

    function lireParCritere($critere) {

        $sSQL = "
                SELECT c.table_code,s.salle_code,s.salle_lib,c.table_lib,c.table_nb_couvert,c.table_comment 
                FROM table_client as c INNER JOIN salle s ON s.salle_code = c.salle_code
                WHERE 1 = 1 ";

        if(isset($critere["table_code"]) && $critere["table_code"] != "") {
            $sSQL .= "AND c.table_code = '" . $critere["table_code"] . "' ";    
        }

        $query = new Query($sSQL,$this->getDI());

        $ret = $query->execute();

        return $ret;

    }

    function ajouter($tab) {
        $champs= "";
        $value = "";
        $separateur ="";

        foreach ($tab as $k => $v){
            $champs .= $separateur . $k;
            $value .= $separateur . "'" . $v . "'";
            $separateur = ",";
        }
        $champs = '('.$champs.')';
        $value = '('.$value.')';
        $sSQL = "
                INSERT INTO table_client $champs
                VALUES $value
                ";
        $query = new Query($sSQL,$this->getDI());
        $ret = $query->execute();
    }

    function modifier($tab) {

        $setColumns = "";
        $separateur = "";

        foreach ($tab as $k => $v){
            if ($k == 'table_code')
                continue;
            $setColumns .= $separateur . 'table_client.' . $k . " = '" . $v . "'";
            $separateur = ",";
        }

        $sSQL = "UPDATE table_client SET ".$setColumns." WHERE table_client.table_code = '".$tab['table_code']."'";

        $query = new Query($sSQL, $this->getDI());
        $ret = $query->execute();
    }

    function supprimer($tab) {
        $sSQL = "DELETE FROM table_client WHERE table_client.table_code = '".$tab['table_code']."'";
        $query = new Query($sSQL, $this->getDI());
        $ret = $query->execute();
    }
}

?>
在运行时,我得到一个类未找到错误!那么如何修复它呢

  • 按函数检查类
  • 检查Phalcon自动加载器配置。确保您真的将autoloader配置类/目录/名称空间放进去了/
  • 您可以在Consoller中检查课程可用性:

    foreach (spl_autoload_functions() as $function) {
        foreach ($function as $object) {
            if (!$object instanceof \Phalcon\Loader) {
                continue;
            }
    
            var_dump($object->getNamespaces());
            var_dump($object->getCheckedPath());
            var_dump($object->getDirs());
            var_dump($object->getClasses());
            var_dump($object->getFoundPath());
        }
    }
    
    die;
    
  • 编辑

  • \Phalcon\Mvc\Model\Query使用的是,而不是SQL。在
    函数lireParCritere($critere)
    中,使用
    FROM\full\Qualified\Class\Name
    而不是
    FROM\u client
  • 对于测试,使用
    $client=newtableclient$客户->LIREPARCRITE($critere)而不是
    TableClient::lireParCritere($critere)

  • 请发布错误消息,可能不相关,但您是静态访问该方法的,因此请将该方法设为静态,或者在我得到的页面上使用实例化运算符
    Table->lireParCritere
    :异常:无法加载模型“Table\u client”
    ,在错误日志文件中,我得到了
    致命错误:在第35行的D:\wamp\www\resto\app\controllers\ReferentielTableController.php中找不到类“table\u client”,所以当我们编写
    时,从
    中选择一些列,然后在
    FROM
    关键字后面的名称是类模型名?@pheromix表示PHQL是
    foreach (spl_autoload_functions() as $function) {
        foreach ($function as $object) {
            if (!$object instanceof \Phalcon\Loader) {
                continue;
            }
    
            var_dump($object->getNamespaces());
            var_dump($object->getCheckedPath());
            var_dump($object->getDirs());
            var_dump($object->getClasses());
            var_dump($object->getFoundPath());
        }
    }
    
    die;