Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.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 ZF2 select不显示任何结果_Php_Mysql_Debugging_Select_Zend Framework - Fatal编程技术网

Php ZF2 select不显示任何结果

Php ZF2 select不显示任何结果,php,mysql,debugging,select,zend-framework,Php,Mysql,Debugging,Select,Zend Framework,我正在尝试在控制器中使用Zend Debug在Zend Framework中显示查询结果。但是模型中的“select”方法返回的唯一内容是这样一个对象(只有结果数,但没有de-data结果): 如何查看,不显示结果,只显示创建的行数:17 所有其他查询都可以完美地工作。表数据库和数据库权限都是正确的。我将把Model.php、两个模型和控制器放在这里向您展示: Module.php ... public function getServiceConfig() {

我正在尝试在控制器中使用Zend Debug在Zend Framework中显示查询结果。但是模型中的“select”方法返回的唯一内容是这样一个对象(只有结果数,但没有de-data结果):

如何查看,不显示结果,只显示创建的行数:17

所有其他查询都可以完美地工作。表数据库和数据库权限都是正确的。我将把Model.php、两个模型和控制器放在这里向您展示:

Module.php

...    
public function getServiceConfig()
    {
            return array(
                'factories' => array(
                    'Grupos\Model\CategoriaGrupoTable' => function ($sm) {
                        $tableGateway = $sm->get('CategoriaGrupoTableGateway');
                        $table = new CategoriaGrupoTable($tableGateway);
                        return $table;
                    },
                    'CategoriaGrupoTableGateway' => function ($sm) {
                        $dbAdapter = $sm->get('Zend\Db\Adapter\Adapter');
                        $resultSetPrototype = new ResultSet();
                        $resultSetPrototype->setArrayObjectPrototype(new CategoriaGrupo());
                        return new TableGateway('grupo_categoria', $dbAdapter, null, $resultSetPrototype);
                    }
                )
            );
        }
class GruposController extends AbstractActionController
{

protected $categoriaGrupoTable;

public function getCategoriaGrupoTable()
    {
        if (! $this->categoriaGrupoTable) {
            $sm = $this->getServiceLocator();
            $this->categoriaGrupoTable = $sm->get('Grupos\Model\CategoriaGrupoTable');
        }
        return $this->categoriaGrupoTable;
    }

public function categoriasAction()
    {
        // Define as configurações e conteúdos das páginas
        $tituloPagina = $translator->translate("Editar Grupo");

        $categorias = $this->getCategoriaGrupoTable()->listar();

        Debug::dump($categorias);

        die();
}
}
<?php
namespace Grupos\Model;

use Zend\Db\TableGateway\TableGateway;

class CategoriaGrupoTable
{

    protected $tableGateway;

    function __construct(TableGateway $tableGateway)
    {
        $this->tableGateway = $tableGateway;
    }

    /**
     * Método que lista todas as categorias ativas
     *
     * @return \Zend\Db\ResultSet\ResultSet
     */
    public function listar()
    {
        return $this->tableGateway->select();
    }
}

?>
<?php
namespace Grupos\Model;

class CategoriaGrupo
{

    public $id;

    public $titulo;

    public $img;

    public $alt;

    public $slug;

    public $ativo;

    // Método que popula o objeto com dados vindos de uma array
    public function exchangeArray($dados)
    {
        $this->id = (! empty($dados["id"])) ? $dados["id"] : null;
        $this->titulo = (! empty($dados["titulo"])) ? $dados["titulo"] : "";
        $this->img = (! empty($dados["img"])) ? $dados["img"] : "";
        $this->alt = (! empty($dados["alt"])) ? $dados["alt"] : "";
        $this->slug = (! empty($dados["slug"])) ? $dados["slug"] : "";
        $this->titulo = (! empty($dados["ativo"])) ? 1 : 0;
    }

    // Esse método pegar o Objeto (que é a própria classe) e retornará ele como se fosse um array
    public function getArrayCopy()
    {
        return get_object_vars($this);
    }
}

?>
GruposController.php

...    
public function getServiceConfig()
    {
            return array(
                'factories' => array(
                    'Grupos\Model\CategoriaGrupoTable' => function ($sm) {
                        $tableGateway = $sm->get('CategoriaGrupoTableGateway');
                        $table = new CategoriaGrupoTable($tableGateway);
                        return $table;
                    },
                    'CategoriaGrupoTableGateway' => function ($sm) {
                        $dbAdapter = $sm->get('Zend\Db\Adapter\Adapter');
                        $resultSetPrototype = new ResultSet();
                        $resultSetPrototype->setArrayObjectPrototype(new CategoriaGrupo());
                        return new TableGateway('grupo_categoria', $dbAdapter, null, $resultSetPrototype);
                    }
                )
            );
        }
class GruposController extends AbstractActionController
{

protected $categoriaGrupoTable;

public function getCategoriaGrupoTable()
    {
        if (! $this->categoriaGrupoTable) {
            $sm = $this->getServiceLocator();
            $this->categoriaGrupoTable = $sm->get('Grupos\Model\CategoriaGrupoTable');
        }
        return $this->categoriaGrupoTable;
    }

public function categoriasAction()
    {
        // Define as configurações e conteúdos das páginas
        $tituloPagina = $translator->translate("Editar Grupo");

        $categorias = $this->getCategoriaGrupoTable()->listar();

        Debug::dump($categorias);

        die();
}
}
<?php
namespace Grupos\Model;

use Zend\Db\TableGateway\TableGateway;

class CategoriaGrupoTable
{

    protected $tableGateway;

    function __construct(TableGateway $tableGateway)
    {
        $this->tableGateway = $tableGateway;
    }

    /**
     * Método que lista todas as categorias ativas
     *
     * @return \Zend\Db\ResultSet\ResultSet
     */
    public function listar()
    {
        return $this->tableGateway->select();
    }
}

?>
<?php
namespace Grupos\Model;

class CategoriaGrupo
{

    public $id;

    public $titulo;

    public $img;

    public $alt;

    public $slug;

    public $ativo;

    // Método que popula o objeto com dados vindos de uma array
    public function exchangeArray($dados)
    {
        $this->id = (! empty($dados["id"])) ? $dados["id"] : null;
        $this->titulo = (! empty($dados["titulo"])) ? $dados["titulo"] : "";
        $this->img = (! empty($dados["img"])) ? $dados["img"] : "";
        $this->alt = (! empty($dados["alt"])) ? $dados["alt"] : "";
        $this->slug = (! empty($dados["slug"])) ? $dados["slug"] : "";
        $this->titulo = (! empty($dados["ativo"])) ? 1 : 0;
    }

    // Esse método pegar o Objeto (que é a própria classe) e retornará ele como se fosse um array
    public function getArrayCopy()
    {
        return get_object_vars($this);
    }
}

?>
Model->CategoriaGrupoTable.php

...    
public function getServiceConfig()
    {
            return array(
                'factories' => array(
                    'Grupos\Model\CategoriaGrupoTable' => function ($sm) {
                        $tableGateway = $sm->get('CategoriaGrupoTableGateway');
                        $table = new CategoriaGrupoTable($tableGateway);
                        return $table;
                    },
                    'CategoriaGrupoTableGateway' => function ($sm) {
                        $dbAdapter = $sm->get('Zend\Db\Adapter\Adapter');
                        $resultSetPrototype = new ResultSet();
                        $resultSetPrototype->setArrayObjectPrototype(new CategoriaGrupo());
                        return new TableGateway('grupo_categoria', $dbAdapter, null, $resultSetPrototype);
                    }
                )
            );
        }
class GruposController extends AbstractActionController
{

protected $categoriaGrupoTable;

public function getCategoriaGrupoTable()
    {
        if (! $this->categoriaGrupoTable) {
            $sm = $this->getServiceLocator();
            $this->categoriaGrupoTable = $sm->get('Grupos\Model\CategoriaGrupoTable');
        }
        return $this->categoriaGrupoTable;
    }

public function categoriasAction()
    {
        // Define as configurações e conteúdos das páginas
        $tituloPagina = $translator->translate("Editar Grupo");

        $categorias = $this->getCategoriaGrupoTable()->listar();

        Debug::dump($categorias);

        die();
}
}
<?php
namespace Grupos\Model;

use Zend\Db\TableGateway\TableGateway;

class CategoriaGrupoTable
{

    protected $tableGateway;

    function __construct(TableGateway $tableGateway)
    {
        $this->tableGateway = $tableGateway;
    }

    /**
     * Método que lista todas as categorias ativas
     *
     * @return \Zend\Db\ResultSet\ResultSet
     */
    public function listar()
    {
        return $this->tableGateway->select();
    }
}

?>
<?php
namespace Grupos\Model;

class CategoriaGrupo
{

    public $id;

    public $titulo;

    public $img;

    public $alt;

    public $slug;

    public $ativo;

    // Método que popula o objeto com dados vindos de uma array
    public function exchangeArray($dados)
    {
        $this->id = (! empty($dados["id"])) ? $dados["id"] : null;
        $this->titulo = (! empty($dados["titulo"])) ? $dados["titulo"] : "";
        $this->img = (! empty($dados["img"])) ? $dados["img"] : "";
        $this->alt = (! empty($dados["alt"])) ? $dados["alt"] : "";
        $this->slug = (! empty($dados["slug"])) ? $dados["slug"] : "";
        $this->titulo = (! empty($dados["ativo"])) ? 1 : 0;
    }

    // Esse método pegar o Objeto (que é a própria classe) e retornará ele como se fosse um array
    public function getArrayCopy()
    {
        return get_object_vars($this);
    }
}

?>

Model->CategoriaGrupo.php

...    
public function getServiceConfig()
    {
            return array(
                'factories' => array(
                    'Grupos\Model\CategoriaGrupoTable' => function ($sm) {
                        $tableGateway = $sm->get('CategoriaGrupoTableGateway');
                        $table = new CategoriaGrupoTable($tableGateway);
                        return $table;
                    },
                    'CategoriaGrupoTableGateway' => function ($sm) {
                        $dbAdapter = $sm->get('Zend\Db\Adapter\Adapter');
                        $resultSetPrototype = new ResultSet();
                        $resultSetPrototype->setArrayObjectPrototype(new CategoriaGrupo());
                        return new TableGateway('grupo_categoria', $dbAdapter, null, $resultSetPrototype);
                    }
                )
            );
        }
class GruposController extends AbstractActionController
{

protected $categoriaGrupoTable;

public function getCategoriaGrupoTable()
    {
        if (! $this->categoriaGrupoTable) {
            $sm = $this->getServiceLocator();
            $this->categoriaGrupoTable = $sm->get('Grupos\Model\CategoriaGrupoTable');
        }
        return $this->categoriaGrupoTable;
    }

public function categoriasAction()
    {
        // Define as configurações e conteúdos das páginas
        $tituloPagina = $translator->translate("Editar Grupo");

        $categorias = $this->getCategoriaGrupoTable()->listar();

        Debug::dump($categorias);

        die();
}
}
<?php
namespace Grupos\Model;

use Zend\Db\TableGateway\TableGateway;

class CategoriaGrupoTable
{

    protected $tableGateway;

    function __construct(TableGateway $tableGateway)
    {
        $this->tableGateway = $tableGateway;
    }

    /**
     * Método que lista todas as categorias ativas
     *
     * @return \Zend\Db\ResultSet\ResultSet
     */
    public function listar()
    {
        return $this->tableGateway->select();
    }
}

?>
<?php
namespace Grupos\Model;

class CategoriaGrupo
{

    public $id;

    public $titulo;

    public $img;

    public $alt;

    public $slug;

    public $ativo;

    // Método que popula o objeto com dados vindos de uma array
    public function exchangeArray($dados)
    {
        $this->id = (! empty($dados["id"])) ? $dados["id"] : null;
        $this->titulo = (! empty($dados["titulo"])) ? $dados["titulo"] : "";
        $this->img = (! empty($dados["img"])) ? $dados["img"] : "";
        $this->alt = (! empty($dados["alt"])) ? $dados["alt"] : "";
        $this->slug = (! empty($dados["slug"])) ? $dados["slug"] : "";
        $this->titulo = (! empty($dados["ativo"])) ? 1 : 0;
    }

    // Esse método pegar o Objeto (que é a própria classe) e retornará ele como se fosse um array
    public function getArrayCopy()
    {
        return get_object_vars($this);
    }
}

?>


嗯。。这就是问题所在,瞧,源文件。。。如果有人能给我一盏灯,我将非常感激!我为我的英语感到抱歉。我试了两周才发现错误。谢谢。

我建议您阅读zend framewrok 2的文档,以便更好地了解查询的工作原理

现在是解决方案。在

Model->CategoriaGrupoTable.php修改listar()函数


谢谢你的时间和帮助。我发现了问题:在形式上,我在exchangeArray方法中减速了两次“titulo”。这导致我的表的所有数据都是null或空的,除了slug。。。谢谢。

你好,dixromo98,谢谢你的回答。我知道这个,我试过这个。但结果是所有反查询,但仅使用“slug”表列的数据。所有其他列返回不正确或空的值。请参阅示例:数组(17){[0]=>数组(6){[“id”]=>string(1)“1”[“titulo”]=>int(1)[“img”]=>string(0)”“[“alt”]=>string(0)”[“slug”]=>string(7)“estudos”[“ativo”]=>NULL}但数据库中的所有记录都有数据……您知道为什么会发生这种情况吗?否则,在第24行的/Applications/MAMP/htdocs/Gruppe/module/Grupos/src/gruppos/Model/CategoriaGrupoTable.PHP中将此错误显示为:PHP可捕获致命错误:Zend\Db\Sql\Sql类的对象无法转换为字符串。这是“return$result->toArray();感谢您的时间和帮助。我发现了问题:在形式上,我在exchangeArray方法中减速了两次“titulo”。这导致我的表的所有数据都为null或空,除了slug…谢谢。