小编Dav*_*idW的帖子

是否可以直接访问twig模板中的Route参数?

我页面上的视图元素取决于路径参数,如果存在路径参数,则会呈现某些内容.是否可以直接访问twig模板中的Route参数?

例如:

TestBundle_testroute:
    pattern:  /{name}
    defaults: { _controller: TestBundle:Default:test, name: defaultname }
Run Code Online (Sandbox Code Playgroud)

我想直接访问Twig中的"name"路由参数.就像是:

{{ routing.name }}
Run Code Online (Sandbox Code Playgroud)

symfony twig

38
推荐指数
1
解决办法
5万
查看次数

在doctrine2中你用什么而不是ENUM?

在Doctrine2中你用什么而不是ENUM?SMALLINT?我想过使用varchar,或者明确定义char,但是当涉及到索引时,这可能不是很有效,或者我错了?

symfony doctrine-orm

37
推荐指数
3
解决办法
4万
查看次数

验证没有Doctrine Entity的表单

我有一种情况,我需要验证一个表单,而实际上没有一个对象存储在任何地方.在这种情况下,我是否仍然会创建一个没有学说的实体,并将其验证为如果表单有效或是否有另一种方式执行我想要做的任何事情?

示例是通过他的名字向用户发送电子邮件.

symfony

35
推荐指数
1
解决办法
2万
查看次数

Swift Mailer交付状态

有谁知道SwiftMailer发送函数是否返回传递状态?我希望能够知道电子邮件已发送或未发送.这可能吗?

谢谢

php symfony1 swiftmailer symfony-1.4

29
推荐指数
3
解决办法
3万
查看次数

访问Symfony2操作和模板中的登录用户

我在我的symfony2应用程序中使用Doctrine作为Auth提供程序.如何在操作或模板中访问经过身份验证的用户?

symfony

29
推荐指数
1
解决办法
2万
查看次数

如果我想控制线之间的高度,那么<br />的替代方案是什么?

在以下示例中:

Line1 <br /> Line2
Run Code Online (Sandbox Code Playgroud)

我正在使用<br />强制Line2进入下一行,但据我所知,没有跨浏览器友好的方式来设置br的高度.我可以用什么替代方法?

html css

23
推荐指数
3
解决办法
6万
查看次数

拥有side作为连接列的主键

注意: 主题冗长但详细,如果您使用Doctrine2和oneToOne关系,可能会派上用场.

最近我在学说中遇到了一个问题:

我使用oneToOne双向关系创建了User和UserData对象:

User:
...
  oneToOne:
    userdata:
      targetEntity: UserData
      mappedBy: user

UserData:
...
  oneToOne:
    user:
      targetEntity: User
      inversedBy: userdata
Run Code Online (Sandbox Code Playgroud)

所以UserData是拥有user_id列的拥有者:

user: id, ...
userdata: id, user_id, ...
Run Code Online (Sandbox Code Playgroud)

这就产生了一个问题,每次你获取一个User对象(单个用户,用户集合或其他对象的集合,用户加入它)时,Doctrine会为每个用户延迟加载一个UserObject.

问题描述如下:

这里描述的建议解决方案:

所以有三种方法:

  1. 等等,看看是否在Doctrine中解决了提议的解决方案,并在将来的版本中修复(可能不会发生)
  2. 手动将每个查询中的UserData加入User(仍然浪费资源,不需要UserData)
  3. 切换反面并使用户拥有自己的一面.

我决定和#3一起去.所以我的架构关系现在看起来像这样:

User:
...
  oneToOne:
    userdata:
      targetEntity: UserData
      inversedBy: user

UserData:
...
  oneToOne:
    user:
      targetEntity: User
      mappedBy: userdata
Run Code Online (Sandbox Code Playgroud)

这意味着我的表现在看起来像这样:

user: id, userdata_id, ...
userdata: id, ...
Run Code Online (Sandbox Code Playgroud)

我决定不再使用Userdata.id自动增量,而是手动设置它并将其与user.id匹配.这意味着UserData.id将始终匹配user.id.

问题我可以使用user.id(主要自动增量密钥)作为joinColum而不是userdata_id,因为它们总是具有相同的值吗?你认为这种做事有任何潜在的问题吗?

关于这个问题的任何其他提示或意见都非常受欢迎和赞赏.

symfony doctrine-orm

22
推荐指数
2
解决办法
5326
查看次数

路由要求中的自定义正则表达式

我正在尝试使路由参数匹配一个长度为3到15个字符的字母数字值.代码如下所示:

TestBundle_new:
pattern:  /message/new/{name}
defaults: { _controller: TestBundle:Message:new }
requirements:
    name:  [a-zA-Z0-9]{2,15}
Run Code Online (Sandbox Code Playgroud)

不幸的是,routing.yml无法加载.我想知道我能做些什么让这项工作成功吗?

yaml symfony

17
推荐指数
1
解决办法
2万
查看次数

将.htaccess内容移动到vhost中以获得性能

我想知道如果我将.htaccess文件内容移动到apache2的vhost文件中是否可以提高性能?

这是我的.htaccess的内容

Options +FollowSymLinks +ExecCGI

<IfModule mod_rewrite.c>
  RewriteEngine On

  RewriteCond %{SERVER_NAME} ^([^.]+\.[^.]+)$ [NC]
  RewriteRule ^(.*)$ http://www.%1/$1 [R=301,L]

  # we check if the .html version is here (caching)
  RewriteRule ^$ index.html [QSA]
  RewriteRule ^([^.]+)$ $1.html [QSA]
  RewriteCond %{REQUEST_FILENAME} !-f

  # no, so we redirect to our front web controller
  RewriteRule ^(.*)$ index.php [QSA,L]
</IfModule>
Run Code Online (Sandbox Code Playgroud)

如果这样做是个好主意,我应该在vhost声明中放置哪些内容?

谢谢!

.htaccess apache2 vhosts

16
推荐指数
1
解决办法
5522
查看次数

如何更改preUpdate事件侦听器中的字段值?

文件说:

刷新操作不再识别对已传递实体的字段的更改,使用传递给事件的计算更改集来修改原始字段值.

但它也说:

getEntityChangeSet()获取变更集数组的副本.对此返回数组的更改不会影响更新.

这是否意味着我无法在preUpdate事件监听器中更改实体的字段?如果没有,我将如何完成此更新?

doctrine-orm

14
推荐指数
2
解决办法
9344
查看次数