PHP5.3 DateTime对象有了diff()方法返回一个DateInterval对象,这个对象可以计算开始时间和结束时间的差值。
因为Twig的date函数总是返回一个DateTime对象所以可以调用diff方法。 read more
FosUserBundle登录或注册后重定向页面
有趣的是,在这里登录和注册,在你没有任何配置的情况下,也已经做好了重定向。但是,如果我们的需求有所变化,怎么办呢?一切都很简单。 read more
Symfony获取上传文件
如果你随意性的在twig模板中,使用一个file input,并没有使用symfony的表单类型,那么你应该如何接收这个上传的文件呢?传统的方式是$_POST[‘you-file-input-name’]得到文件,然后再使用$_POST[‘you-file-input-name’][‘name’]来获取到文件名称。 read more
如何在Twig模板中判断子对象是否存在
有时候,我们会有One-to-Many这样的数据库关系,这种关系根据项目的需要,会在模板中呈现出来,我们就要判断对象下的子对象是否存在,如果存在就会输出到Twig模板中。那么问题来了,我们在twig模板中该如何判断了,很简单: read more
根据控制器的不同来给导航加亮
有时候,我们并不希望,我们在twig模板中的每个导航加亮的判断条件,都在控制器的action中输出,因为我们会浪费大量的时间和精力去写重复的代码。 read more
PHPStorm破解
http://idea.lanyus.com/ 有很详细的破解,但还是欢迎正版
以phpstorm 10.0.3 为例 read more
密码保护:sonataadminbundle中collection表单类型的使用
SonataAdminBundle列表页视图
这个文档主要涉及list视图,在系统中你使用它来浏览对象。涉及到的配置主要是list页面自己和过滤器(你能够使用它来控制什么条件可见)。 read more
symfony表单select递归显示
主要用到两个bundle就可以easy解决
https://github.com/stof/StofDoctrineExtensionsBundle
https://github.com/Yavin/symfony-form-tree
(Security)怎么样去自定义你的登录表单
在symfony认证中使用form login 认证是一种常见的、灵活的方法。几乎每一个方面表单登录都可以定制。下面介绍完整的默认配置。
表单登录配置的参考
要查看完整的form login配置,请参阅SecurityBundle Configuration (“security”)。其中一些有趣的配置选项如下。
成功后的重定向
你可以选择各种各样的配置去改变登录成功后的跳转页面。默认情况下页面跳转回用户请求的页面(这个页面就是触发登录表单的页面)例如用户请求http://www.example.com/admin/post/18/edit,最终成功登录,页面还会跳转回http://www.example.com/admin/post/18/edit。这些请求的URL都存储在session中。如果没有URL出现在session中(也许是用户直接去登陆页面),然后将用户重定向到默认页面,也就是默认的首页。你可以通过多种方式完成这种行为。
如前所述,默认情况下将用户重定向到最初的页面。有时,也可能导致问题,像:如果一个后台的ajax请求“appears”是上次访问的URL,那么用户会被重定向到那里,这是不对的。有关控制信息请参阅 How to Change the default Target Path Behavior.
改变默认页面
首先,这个默认页面能够被设置(也就是说,如果没有前一个页面被存储在session里,用户会被重定向到默认页面)。要将他设置为default_security_target
路由,请看以下配置:
1 2 3 4 5 6 7 |
# app/config/security.yml security: firewalls: main: form_login: # ... default_target_path: default_security_target |
现在,当session里没有URL时,用户将被定向到default_security_target路由。
始终重定向到默认页面
你可以不管页面如何请求,都把URL定向到默认页面,你需要设置always_use_default_target_path为true即可:
1 2 3 4 5 6 7 |
# app/config/security.yml security: firewalls: main: form_login: # ... always_use_default_target_path: true |
使用Referring URL
如果以前没有URL被储存在session,你不妨尝试使用HTTP_REFERER来代替,因为这往往是相同的。你可以设置use_referer为true来实现(它默认时false):
1 2 3 4 5 6 7 |
# app/config/security.yml security: firewalls: main: form_login: # ... use_referer: true |
从表单内控制重定向的URL
你可以通过增加一个隐藏的_target_path字段来指定重定向。例如,使用以下方式,将重定向URL设置为account路由。
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 |
{# src/Acme/SecurityBundle/Resources/views/Security/login.html.twig #} {% if error %} <div>{{ error.message }}</div> {% endif %} <form action="{{ path('login_check') }}" method="post"> <label for="username">Username:</label> <input type="text" id="username" name="_username" value="{{ last_username }}" /> <label for="password">Password:</label> <input type="password" id="password" name="_password" /> <input type="hidden" name="_target_path" value="account" /> <input type="submit" name="login" /> </form> |
未完待续中。。。。。