在我的Symfony2项目中,我正处于开发模式正确的404 Exception屏幕.但是我在生产模式下使用HTTP状态代码500而不是404获取空白屏幕.我正在使用自定义错误模板app/Resources/TwigBundle/views/Exception.在apache错误日志中,它会创建以下消息:
PHP Fatal error: Uncaught exception 'Symfony\\Component\\Routing\\Exception\\ResourceNotFoundException' in /home/test/app/cache/prod/appprodUrlMatcher.php:518\nStack trace:
#0 /home/test/app/cache/prod/classes.php(1025): appprodUrlMatcher->match('/404')
#1 /home/test/app/cache/prod/classes.php(4550): Symfony\\Component\\Routing\\Router->match('/404')
#2 [internal function]: Symfony\\Bundle\\FrameworkBundle\\EventListener\\RouterListener->onKernelRequest(Object(Symfony\\Component\\HttpKernel\\Event\\GetResponseEvent))
#3 /home/test/app/cache/prod/classes.php(3777): call_user_func(Array, Object(Symfony\\Component\\HttpKernel\\Event\\GetResponseEvent))
#4 /home/test/app/cache/prod/classes.php(3703): Symfony\\Component\\EventDispatcher\\EventDispatcher->doDispatch(Array, 'kernel.request', Object(Symfony\\Component\\HttpKernel\\Event\\GetResponseEvent))
#5 /home/test/app/cache/prod/classes.php(4787): Symfony\\Component\\EventDispatcher\\EventDispatcher->dispatch('kernel.request', Object(Symfony\\Component\\HttpKernel\\Event\\Get in /home/test/app/cache/prod/classes.php on line 4560
Run Code Online (Sandbox Code Playgroud) 在Symfony2中实现更改密码功能的最佳方法是什么?现在我正在使用这个:
$builder->add('password', 'repeated', array(
'first_name' => 'New password',
'second_name' => 'Confirm new password',
'type' => 'password'
));
Run Code Online (Sandbox Code Playgroud)
出于安全原因,它还应包含当前密码检查.
注意:我没有使用FOSUserBundle.
在Symfony2中BandType,我添加了实体Tag:
->add('tags', 'entity', [
'label' => 'Tags',
'class' => 'DbBundle:Tag',
'property' => 'title',
'multiple' => true,
])
Run Code Online (Sandbox Code Playgroud)
这会生成多个select元素,我可以从数据库中选择现有的标签(Doctrine).但我需要动态添加新标签,这些标签尚不存在.
在客户端,我使用jQuery插件Selectize.js,它允许我添加新标签到选择框.但在提交表单后,新标签不会保存.
所以我的问题是 - 从选择框(实体字段类型)中保留新项目的最清晰方法是什么?
我的问题和这个问题类似,但我想要追加行,而不是在前面添加行.
这不起作用:
app.directive('createTable', function ($compile) {
return {
link: function (scope, element, attrs) {
var contentTr = angular.element('<tr><td>test</td></tr>');
contentTr.parentNode.insertBefore(element, contentTr.nextSibling);
$compile(contentTr)(scope);
}
}
});
Run Code Online (Sandbox Code Playgroud) 我正在使用JMS\I18nRoutingBundle,Gedmo\Translatable而且Gedmo\Sluggable.具有默认位置的路由也可以工作,但其他语言环境无需翻译slug.我的i18n路由具有以下设置:
# Doctrine extensions
stof_doctrine_extensions:
default_locale: %locale%
translation_fallback: true
orm:
default:
#…
sluggable: true
translatable: true
loggable: false
#…
jms_i18n_routing:
default_locale: cs_CZ
locales: [cs_CZ, en_US]
strategy: custom
hosts:
cs_CZ: example.cz
en_US: example.com
redirect_to_host: true
Run Code Online (Sandbox Code Playgroud)
当我设置这样的路线时:
hw_category:
pattern: /category/{slug}
defaults: { _controller: AcmeSiteBundle:Category:detail }
Run Code Online (Sandbox Code Playgroud)
/**
* @Template
*/
public function detailAction(Category $category)
{}
Run Code Online (Sandbox Code Playgroud)
这条路线有效
example.cz/category/slug-in-czech
example.com/category/slug-in-czech
但是我希望获得example.com/category/slug-in-english引发404异常的工作object not found.
在我的config_prod.yml文件中,我有以下配置。我在哪里可以配置Redis驱动程序-选项,例如unix套接字(或主机),数据库号等?
doctrine:
orm:
metadata_cache_driver: redis
query_cache_driver: redis
result_cache_driver: redis
Run Code Online (Sandbox Code Playgroud) symfony ×5
doctrine-orm ×2
angularjs ×1
entity ×1
forms ×1
php ×1
redis ×1
routing ×1
security ×1
selectize.js ×1
terminology ×1