我有一个Facebook iFrame应用程序(用PHP编写),当我在IE8中运行它时,我的会话数据不会持久存在.
我正在使用Symfony 1.4并尝试过Symfony的会话包装器和$ _SESSION.
我设置了两个测试页面:第一个定义$_SESSION['foo'] = 'bar'和调用print_r($_SESSION).第二页也打电话print_r($_SESSION).我看到我的会话变量在第一页上设置,但在第二页上没有.
在Firefox和Chrome中一切正常,我有另外两个人在运行IE8的不同PC上测试它们,他们也有同样的问题.
我尝试从我的页面中删除任何Facebook javascript,认为它可能会以某种方式干扰,但这并没有解决任何问题.
任何帮助将不胜感激,谢谢!
如何通过依赖注入将服务注入实体存储库?
我试着这样:
<service id="rp.repository.user" class="RP\CoreBundle\Repository\UserRepository"
factory-service="doctrine.orm.entity_manager" factory-method="getRepository">
<call method="setSecurityContext">
<argument type="service" id="security.context"/>
</call>
</service>
Run Code Online (Sandbox Code Playgroud)
但是setSecurityContext它从来没有被称为Plz帮助
我正在为使用Symfony2的会话服务获取数据的操作编写功能测试.在我的测试类的setUp方法中,我打电话$this->get('session')->set('foo', 'bar');.如果我在实际测试方法print_r($this->get('session')->all());中setUp或在实际测试方法中输出所有会话数据(使用),我会回来foo => bar.但是如果我尝试从正在测试的动作输出会话数据,我会得到一个空数组.有谁知道为什么会这样,我怎么能阻止它?
我应该注意,如果我$_SESSION['foo'] = 'bar'从setUp()数据内部调用是持久的,我可以从操作中访问它 - 这个问题似乎是Symfony2会话服务的本地问题.
我正在PHP中构建一个MVC框架,需要设置一些默认的配置变量/常量.示例配置变量将是保存日志文件的位置,是否记录查询,Doctrine设置等等.因为我希望开发人员能够以最小的忙乱创建新项目,所以这些配置变量应该具有默认值.但是,要使此框架真正有用,我需要它们能够在项目引导文件中或在控制器或模型中覆盖这些默认值.我很想使用常量,但它们不能被覆盖.我觉得必须有一个我没看到的简单解决方案(也许是设计模式?).任何建议将不胜感激,谢谢.
我最近开始构建我一年的自定义MVC框架的第2版.在许多项目中,它对我很有用,但我确实看到了改进的空间.它缺少一些主要功能,如ACL,表单验证和缓存.尽管我自己也喜欢自己制作这些部件,但实际上我知道这不是一个明智的决定.所以,我开始研究Zend Framework 1.9.我真的很喜欢它的组件库松散耦合.但是,通过查看不同的教程,它看起来非常冗长.我已经看到了一些示例应用程序,我可以用我自己的框架使用更少的代码复制.因此,我想"重新定义"它的大部分内容,以使其更加友好.因此,在我花费大量时间深入研究框架之前,我希望有人可以为我阐明这个主题.我是一个内心的编码员,如果它有一个坚实的基础(我希望ZF有),可以花几个小时调整和定制一些东西.
我应该注意到,我很高兴看到Doctrine可以与ZF集成.
如果ZF不容易扩展,那么其他框架是什么(还有ACL,表单验证,缓存)?我一直在看Symfony,但整个Configuration over Convention事情让我很烦恼.
提前感谢任何输入.
编辑
为了回答tharkun的问题,"易于扩展"的意思是我可以滚动自己的类(可能会或不会扩展ZF类)并将它们打包到框架中,以便我可以轻松地为我构建代码的基础自己的项目.
我从教程Tutorial中安装了symfony .安装正常,它显示了欢迎页面,但是当我点击configure your symfony app它时出现以下错误
Fatal error: Class 'Symfony\Component\DependencyInjection\Compiler\ResolveDefinitionTemplatesPass' not found in C:\xampp\htdocs\Symfony\vendor\symfony\src\Symfony\Component\DependencyInjection\Compiler\PassConfig.php on line 48
我正在尝试使用ReactJS嵌入一个Gist,但是我收到以下错误:
无法在'Document'上执行'write':除非明确打开,否则无法从异步加载的外部脚本写入文档.
这是我的组件:
var EmbeddedGist = React.createClass({
render: function() {
return (
<div id="gist-container" />
);
},
componentDidMount: function() {
var src = this.props.srcUrl + ".js";
$('#gist-container').html('<script src="' + src + '"></script>');
}
});
Run Code Online (Sandbox Code Playgroud)
我从另一个组件中调用它,如下:
<EmbeddedGist srcUrl="https://gist.github.com/awalGarg/a5bd02978cecf3703f61" />
Run Code Online (Sandbox Code Playgroud)
关于如何使这项工作的任何想法?
我有一个管理表单,允许用户创建需要图像的实体.所以在表单类中,我有一个sfValidatorFile对象,它将'required'选项设置为true.当用户创建新实体时,这是完美的行为.当他们编辑现有实体时会出现问题.他们不必每次编辑实体时都选择一个图像,但如果不这样做,symfony会返回一个错误,抱怨图像是必需的.那么有可能使sfValidatorFile有条件地使用'required'选项吗?
我有两个实体:AudioPlaylist和AudioTrack.
AudioPlaylist.php:
/**
* @ORM\ManyToMany(targetEntity = "AudioTrack", inversedBy = "audioPlaylists")
* @ORM\JoinTable(name = "audioplaylist_audiotrack")
*
* @var ArrayCollection
*/
protected $audioTracks;
Run Code Online (Sandbox Code Playgroud)
AudioTrack.php:
/**
* @ORM\ManyToMany(targetEntity = "AudioPlaylist", mappedBy = "audioTracks")
*
* @var ArrayCollection
*/
protected $audioPlaylists;
Run Code Online (Sandbox Code Playgroud)
我的问题是,当我打电话时$audioTrack->addAudioPlaylist($audioPlaylist),audioplaylist_audiotrack表格没有更新.我期待在表中添加一个新行,表示两个实体之间的关系.虽然$audioPlaylist->addAudioTrack($audioTrack)添加了一个新行,但一切正常.
我确保坚持$audioTrack并刷新实体管理器,但没有运气,所以我认为我的注释一定有问题(我正在使用Doctrine文档中的这个例子).有任何想法吗?
我有一种情况需要检查未登录用户的角色.
我最初只是查询users表格的roles字段,看看问题中的角色是否被包含,但这并未考虑角色层次结构.例如,如果用户已被授予,ROLE_ADMIN他们也将拥有ROLE_USER.但是,您不会ROLE_USER在数据库中看到,因为在这种情况下它包含在ROLE_ADMIN.
我对Symfony2的安全机制的内部工作方式有点不熟悉 - 我想为用户"模仿"一个令牌(基于他们的用户名),但我不确定如何,或者甚至可能.我一直在挖掘安全组件,但尚未找到解决方案.
是否可以检查未登录用户的角色?
我有一个表item_category有两列:item_id,cat_id.项目与类别是多对多关系.
如果我的桌子看起来像这样......
item_id | cat_id
1 | 1
1 | 2
2 | 3
2 | 4
3 | 5
3 | 6
4 | 7
4 | 8
5 | 9
5 | 10
Run Code Online (Sandbox Code Playgroud)
...我怎样才能选择一个不同的列表item_ids表示没有任何地方行category_id是2或7(产生item_id的2秒,3,5)?