我真的很困惑。我使用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
答案 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,然后它也可以正常工作。