问题标签 [symfony-2.3]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
inheritance - 继承映射:用例
我发现自己处于一个场景中:
一个配乐可以有多种乐器。
在该配乐中,可能有一些具有不同音调的版本和没有任何乐器的版本,或者具有不同音调但没有任何乐器的版本。
总之:
- 原声大碟
- 不同音调的配乐
- 没有任何乐器的配乐
- 没有某些乐器的不同音调的配乐
要创建一个数据库,我曾想过使用继承映射,但我是初学者,不知道这是否正确!
提示?关于如何正确创建合理性的想法?
我想:
配乐 -> N:M <- 乐器
配乐->?-> Soundtrack_tone
配乐->?-> Soundtrack_any_instrument
但我因为缺乏经验而停在这里。
symfony - Symfony2 多级动态路由器
我有一个当前项目,它必须显示具有特定实体的已定义页面,使用 Symfony2 非常容易管理的内容,以及不同布局上的内容页面,我猜这有点不太常见。
我在尝试构建路由系统时遇到了麻烦。
例如,如果我必须显示一个包含一些新闻的页面,我想用一个新路由更新我的包的路由器,例如:
但是如何管理可以在多个级别上具有完全自定义 URL 的动态路由器呢?
假设我有一个“页面”实体,它是可选的“父子”关系的自引用。我不认为我可以为这个特定的路由使用任何配置 YAML 文件?!
这将绑定所有第一级页面:
/项目
/关于
/接触
/我们的项目
例如,一个页面会显示一个像这样的 slug:
/我们的项目/健康
其实任何网址...
/{slug-level1}/{slug-level2}/{slug-level3} 等。
因为页面应该从网站管理员更改和更新。
我想最好的方法是让路由器将 {slug} 与数据库字段(实体属性)进行比较
我在Symfony-CMF 文档中读到,可以编写基于路由提供者的服务:
但是如何将其设置为服务?有什么要求吗?这种事情怎么会起作用,它是否在调用请求时向 RouteCollection 添加了一条路由?
我能以这种方式绑定任何路线吗?
编辑:我的包的 services.yml
symfony - Symfony2 - 如何显示内容并安全访问它
我正在开发一个使用 Symfony2 将书籍显示为交互式 Flash 内容的应用程序。每本书都有一个 index.html 文件,该文件包含所有嵌入在 html 代码中的 flash 内容和一些目录,其中包含书籍的所有必需部分(图像、js 文件等)与该 index.html 文件链接,并通过“src”相互链接和“href”标签等。我想在我的网站上显示这些书籍,同时防止匿名用户下载它们。
例如:
我的书在 web/Books 文件夹中,要显示 Book1 我必须显示 web/Books/Book1/index.html 文件。通过将这些文件放在 web 目录中,我允许匿名用户通过键入例如 www.example.com/Books/Book1/index.html 或类似的图像、js 文件等来访问它们(路径可以从书籍索引的内容中读取.html)。
有什么办法可以防止这种情况发生吗?
我是服务器的管理员,根目录设置在 web 目录中,如推荐的那样。
提前感谢您的任何回答。
编辑。[已解决]
好的,我找到了解决方案。这类似于 Pier-Luc 的 Gendreau 提案。
想法:
所有书籍都位于'books'文件夹中,每本书的index.html路径是/books/{title}/index.html。在.htaccess中我写了RedirectMatch,例如:/books/book1/index.html被重定向到/bookrouter/book1/index.html。像这样的路径不是现有文件的路径,因此 Symfony2 可以将其作为路由处理。路由模式是 /bookrouter/{path}.{_format}(需要 {path} 以允许“/”符号),因此我可以使用正确的标题和内容创建准确的响应,并通过所有必需的身份验证/授权提供所需的文件。这有两个不好的方面:
1. 我必须分别处理每个文件扩展名以创建正确的 http 标头和内容。
2. 更有经验的程序员说,如果我们的用户数量和我们预期的一样多,这种处理每个请求的方式会杀死我们的服务器,所以我们不能使用它。
所以人们,谢谢你的时间!我希望我的解决方案描述清楚,也许将来有人会发现它有用。干杯!
symfony - Symfony2 在运行 url 时设置默认语言
如果 url 中没有指定,我正在尝试自动设置本地。
我想实现的是:
如果用户进入网站 www.example.com 会自动设置为英语。
我试过这个:
但如果我没有将语言放在 URL 中,则会出现此错误:
我究竟做错了什么?
jenkins - 构建成功后出现詹金斯错误
我有詹金斯的问题。它报告说我的 symfony2 项目的构建是成功的,但之后它直接崩溃了
我不知道为什么,也没有在网上找到任何有助于解决此错误的信息。它突然出现了。昨天构建正确完成。
这是我的日志:
symfony - 自动检测用户的语言环境
我的目标是识别本地用户的浏览器并自动设置语言。
然后允许用户更改语言并将其保留在其他页面上。
当时我以这种方式设置路线:
当用户在没有指定语言的情况下进入页面 example.com 时,本地路由默认设置,并且页面有一个切换器可以让您更改语言:
我该如何做我想做的事?
我必须创建一个监听器?我已经把本地会话?
我很困惑,我阅读了几个答案,但没有找到明确的答案!
symfony - Strange behavior route
I'm trying to get this setup but I'm having problems: use lunetics locale bundle.
the user accesses the site www.example.com, the bundle takes the user's locale and displays the page with its local, for example, if his place is the German you will see www.example.com/de.
This configuration can not seem to get it.
The strange thing is that I get strange behavior with the routes even without that bundle: For example I set this route:
if I go to www.example.com/en page is displayed
if I go to www.example.com I returned an error where it says that there is no route /.
What am I doing wrong?
symfony - 在 Symfony2 实体的类名中加下划线
我实际上已经使用 Symfony2 完成了一个项目,但是我的老板希望我更改数据库中表的名称。他想在我的表格名称中加上下划线,这意味着在类名中加上下划线。
我试图这样做,但它不起作用。当我这样做时,我收到一条错误消息: "The entity "entity" cannot be found in "another entity""。
我还尝试重命名不带下划线的类名,看看我是否做错了,但不,这是有效的。
我在网上搜索,也许可以解释这个问题的原因,这里是:
所以有人可以确切地告诉我如何用 symfony 在我的表名中添加下划线?
session-cookies - 如果启用 cookie,Symfony ESI 会破坏 Varnish 缓存
我不知道我在做什么了。我有很多问题我不知道从哪里开始。这是我的配置:
首先,我AppCache
在 app.php 文件中禁用了 Symfony,该文件用作反向代理而不是 Varnish。
这是我的清漆配置:
Varnish (80) <--> Apache (8080)
因为:
Varnish 删除了公共页面的所有 Cookie 并点击了缓存,这很好但是......由于 Varnish 删除了所有我无法保持登录状态的 cookie(没有会话 cookie 意味着没有会话)。
我在没有缓存标头的 ESI 块中有登录按钮,但这仍然不能解决它。这是前端控制器:
该模板扩展了layout.html.twig
:
和控制器AcmeUserBundle:Default:loginBox
:
我不知道如何管理 Symfony 的会话 cookie。因为我在需要用户会话的每个页面上都有一个 facebook 连接按钮。而且因为 Symfony 甚至为匿名用户创建了一个 cookie,所以我对所有请求都有会话 cookie。
帮助将不胜感激:)
谢谢,马克西姆
更新:推荐后的新 VCL 文件:
现在,每个公共页面都已正确缓存。我在登录页面上的所有地方都有缓存 HIT,但现在这没什么大不了的。
我遇到的问题是标题中的 ESI 块。我可以在 apache 访问日志中看到清漆正在请求<esi:include>
调用/_fragment
url。
主页上呈现的 ESI 块不正确(它显示登录 url,就好像用户没有登录一样)但是如果我/_fragment
直接调用,返回的块是正确的(带有用户信息)。
我真的不知道它来自哪里,但我很接近:)
symfony - JMSI18nRoutingBundle 检测首选语言
有没有办法检测策略“prefix_except_default”的用户语言环境?
例如
默认语言环境:en
如果我继续访问 www.example.com 并且用户的语言环境设置为“fr”,它会将我重定向到 www.example.com/fr
与“前缀”一样,只有区域设置默认路由将具有 www.example.com 而不是 www.example.com/en