应用程序在app_dev.php中工作,但使用app.php不可见

时间:2017-11-27 08:09:21

标签: php symfony doctrine-orm doctrine symfony-2.7

我真的很困惑。我使用Symfony 2.7和doctrine作为其原生ORM。 因此,当我使用app_dev.php启动它时,一切正常,但是当我使用app.php启动它时。

它只是不起作用。 在日志中它说

[2017-11-27 09:02:51] request.CRITICAL: Uncaught PHP Exception Doctrine\DBAL\DBALException: "An exception occurred while executing 'SELECT t1.id AS id2, t1.code AS code3, t1.created AS created4, t1.updated AS updated5, t1.template_code AS template_code6, t1.label_attribute_id AS label_attribute_id7 FROM pim_catalog_family t1 WHERE t0.code = ? LIMIT 1' with params ["city_actions"]:  SQLSTATE[42S22]: Column not found: 1054 Unknown column 't0.code' in 'where clause'" at /var/www/html/pim-community-standard/vendor/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php line 91 {"exception":"[object] (Doctrine\\DBAL\\DBALException(code: 0): An exception occurred while executing 'SELECT t1.id AS id2, t1.code AS code3, t1.created AS created4, t1.updated AS updated5, t1.template_code AS template_code6, t1.label_attribute_id AS label_attribute_id7 FROM pim_catalog_family t1 WHERE t0.code = ? LIMIT 1' with params [\"city_actions\"]:\n\nSQLSTATE[42S22]: Column not found: 1054 Unknown column 't0.code' in 'where clause' at /var/www/html/pim-community-standard/vendor/doctrine/dbal/lib/Doctrine/DBAL/DBALException.php:91, PDOException(code: 42S22): SQLSTATE[42S22]: Column not found: 1054 Unknown column 't0.code' in 'where clause' at /var/www/html/pim-community-standard/vendor/doctrine/dbal/lib/Doctrine/DBAL/Connection.php:694)"} [] 

这是可以自我解释的,所以它找不到t0,因为它不存在。 我已经尝试清除缓存中的doctrine并清除应用程序的常规缓存,但没有任何效果。 我用过这个命令 -

  php app/console doctrine:cache:clear-metadata 
  php app/console doctrine:cache:clear-query  
  php app/console doctrine:cache:clear-result

php app/console cache:clear --env=prod

有没有人知道这里发生了什么?

编辑:

    <?php
/**
 * Created by PhpStorm.
 * User: nebo
 * Date: 2.11.17.
 * Time: 10.50
 */

namespace Iclei\Bundle\BackendBundle\Entity;

use Pim\Bundle\CatalogBundle\Entity\Family as BaseFamily;

class Family extends BaseFamily
{
    protected $template_code;

    /**
     * @return mixed
     */
    public function getTemplateCode()
    {
        return $this->template_code;
    }

    /**
     * @param mixed $template_code
     */
    public function setTemplateCode($template_code)
    {
        $this->template_code = $template_code;
    }

}

这是我的家人.orm.yml

Bundle\BackendBundle\Entity\Family:
    type: entity
    table: pim_catalog_family
    changeTrackingPolicy: DEFERRED_EXPLICIT
    repositoryClass: Pim\Bundle\CatalogBundle\Doctrine\ORM\Repository\FamilyRepository
    uniqueConstraints:
        pim_category_code_uc:
            columns:
                - code
    fields:
        template_code:
            type: text
            nullable: true

1 个答案:

答案 0 :(得分:0)

所以这个问题的答案在于config_prod.yml,它与config_dev.yml略有不同。

它在缓存机制上有所不同。看看我的config_prod.yml

        imports:
        - { resource: config.yml }

    doctrine:
        orm:
            entity_managers:
                default:
                    metadata_cache_driver: apc
                    result_cache_driver:   apc
                    query_cache_driver:    apc

    monolog:
        handlers:
            main:
                type:         fingers_crossed
                action_level: warning
                handler:      nested
            nested:
                type: stream
                path: %kernel.logs_dir%/%kernel.environment%.log
                level: info
            console:
                type:  console

    oro_assetic:
        css_debug:      ~
        css_debug_all:  false

查看我的config_dev.yml

    imports:
    - { resource: config.yml }

framework:
    router:   { resource: "%kernel.root_dir%/config/routing_dev.yml" }
    profiler: { only_exceptions: false }

web_profiler:
    toolbar: true
    intercept_redirects: false

monolog:
    handlers:
        main:
            type:  stream
            path:  "%kernel.logs_dir%/%kernel.environment%.log"
            level: debug
        firephp:
            type:  firephp
            level: info

oro_assetic:
    css_debug:      ~
    css_debug_all:  false

swiftmailer:
    disable_delivery: true

parameters:
    apy_js_form_validation.yui_js: false

我刚刚从config_prod.yml中注释掉了教条,突然之间一切正常:-) 或者您也可以在生产中启用APC,然后它也可以正常工作。