我读过这个
Doctrine:如何从侦听器中的select查询中删除where子句的一部分(preDqlSelect)?
但是,我仍然无法看到如何删除特定的部分,这是没有明确写的,可以有人解释我怎么样?
我的Doctrine_RawSql示例
$a = new Doctrine_RawSql();
$a->select('{m.username}, {m.age}, {m.photo_principale_petit_format},{m.photo_principale_grand_format}')->
from('(SELECT * FROM member_user where id > ( SELECT max(id)-15000 as maximum FROM member_user)) as m')->
innerJoin('member_group_history as g ON m.id = g.member_user_id')->
where('g.old_member_group_id = ?', 7)->
andWhere('m.is_visible = ?', 1)->
andWhere('m.sexe = ?', $this->getSexeRecherche())->
andWhere('m.age >= ?', $this->getMinAgeSearch())->
andWhere('m.age <= ?', $this->getMaxAgeSearch())->
andWhereIn('m.member_group_id', array(10,11))->
andWhere('g.created_at >= ?', date("Y-m-d H:i:s",strtotime("- 20 weeks")))->
andWhere('g.created_at <= ?', date("Y-m-d H:i:s",strtotime("now")))->
limit($limit)->
addComponent('m', 'MemberUser m');
Run Code Online (Sandbox Code Playgroud)
实际上我只是想测试我的查询计数是否返回足够的结果,如果没有则删除特定的谓词.
$this->facebook_applications = Doctrine::getTable('FacebookApplication')
->createQuery('a')
->execute();
Run Code Online (Sandbox Code Playgroud)
我不明白这是怎么回事.为什么查询只是'a',为什么这似乎得到应用程序列表?
我是symfony的初学者,我无法理解表格生成.从理论上讲,甚至还有一个表单框架,具有完全的灵活性.但是,据我所知,表单在symfony中呈现为表格.我习惯CakePHP,我可以一次输出一个输入元素,然后按照我的意愿包装它们:在表格,div,无论什么,或者,通常都没有,只需使用CSS来正确定位它们.
我有点震惊的是,一个具有如此高标准的代码质量的框架然后输出不需要它们的HTML表.我想我只是错过了一些东西.
有没有办法将表单作为表单输出,没有额外的HTML标签?
我正在使用Symfony和sfDoctrineGuardPlugin.
如何在模板中显示当前用户的用户名?
我已经尝试了$ this-> getUser() - > getUsername(),但我得到的只是错误:"调用未定义的方法sfPHPView :: getUser."
我正在尝试在layout.php中显示用户名,而不是在特定的模块/模板中
默认情况下,symfony将文件上传到web/upload文件夹,因此任何人都可以访问它们.我需要检查每个文件请求的用户凭据.我该怎么做?
我有一个symfony项目,由于DNS问题,它是http://<project-name>/本地的,但它需要http://<qa-host-name>/<project-name>;/在更多的QA级别环境中托管,但它可能是http://<domain-name>/用于生产(所以,我需要这两个工作).现在,images文件夹将永远是相对于<project-name>目录的,所以本地它将是http://<project-name>/my-smilie.png和QA它将是http://<qa-host-name>/<project-name>/my-smilie.png
因为所有内容都与index.php的URL相关,所以我认为Symfony可以创建动态URL,即使上下文不同也template.php可以使用,这样我就可以
<?php echo image_url("my-smilie.png");
/*see below for potential implementation*/?>
Run Code Online (Sandbox Code Playgroud)
它会输出http://<project-name>/my-smilie.png,http://<qa-host-name>/<project-name>/my-smilie.png或http://<domain-name>/my-smilie.png.(相对URL很好,但绝对会更好).
下面是我正在寻找的一个例子,但我觉得我正在尝试重新发明轮子,Symfony已经完成了这个.
function image_url($img)
{
return get_base_url() . '/images/' . $img;
}
function get_base_url()
{
$par = dirname( $_SERVER[ 'SCRIPT_NAME' ] );
if($par == "/") $par = "";
return $par;
}
Run Code Online (Sandbox Code Playgroud) 我使用了"doctrine:generate-admin"任务.一切正常,但我想使用generator.yml文件来取消设置某些表单字段,而不是在Form类本身中取消它们.像"updated_at"之类的东西我只需要在对象更新时保存但我不希望它们显示在任何表单上,因此我不会得到任何表单验证错误.
这可能吗?我在生成器的参考页面上找不到任何可以让我这样做的东西,字段配置似乎只允许更改标签/凭证等.
我在项目中使用symfony 1.4,我需要在单个字段中存储多个选项.
我正在使用sfWidgetFormChoice设置这样的loooks:
$status = Doctrine::getTable('Profile')->getStatuses();
$this->widgetSchema['status'] = new sfWidgetFormChoice(array(
'expanded'=>true,
'choices'=>$status,
'multiple'=>true
));
$this->validatorSchema['status'] = new sfValidatorChoice(
array('choices'=>array_keys($status),
'multiple'=>true, 'required'=>false
));
Run Code Online (Sandbox Code Playgroud)
在我的模型中,我使用以下内容将多个选项序列化为单个字段.
public function setStatus($data) {
$data = serialize($data);
$this->_set('status', $data);
}
Run Code Online (Sandbox Code Playgroud)
?>哪个像魅力一样工作并将数据保存为:
a:2:{i:0;s:7:"relaxed";i:1;s:8:"Inactive";}
Run Code Online (Sandbox Code Playgroud)
但是,我在使用我的模型中的以下内容时难以将序列化字符串检索为数组:
public function getStatus() {
return unserialize($this->status);
}
Run Code Online (Sandbox Code Playgroud)
我在这里错过了什么吗?我收到以下错误:
注意:未定义的属性:C:中的Profile :: $ status:.../.. /./这对我来说没有意义..
我有一个名称和姓氏列的用户模型.我正在尝试使用表单创建一个选择器,默认情况下只显示名称值.sfWidgetFormDoctrineChoice
如何修改窗口小部件以显示名称和姓氏?我知道你可以在初始化小部件时传递一个查询选项,但我不能让它工作:
$this->setWidget('user_id', new sfWidgetFormDoctrineChoice(array(
'model' => $this->getRelatedModelName('User'),
'query' => Doctrine_Query::create()->select('u.name, u.surname')->from('User u'),
'add_empty' => false)
));
Run Code Online (Sandbox Code Playgroud)
谢谢!
我正在对已经构建的现有项目进行修改,其中一项任务是在"回复"字段中添加填写联系表单的人的电子邮件地址,而在现场,该地址是网站管理员{以便它不发送到垃圾邮件}
问题是,如何添加回复字段?
邮件类使用的是sfMailer,当我尝试使用addReplyTo() 方法时(做了一些google并找到了这个),然后错误说:
Fatal error: Call to undefined method sfMailer::addReplyTo()
Run Code Online (Sandbox Code Playgroud)
在http://www.symfony-project.org/api/1_4/sfMailer检查API时发现没有这样的方法.那么如何添加回复字段呢?这不是一项艰巨的任务,但我不知道该怎么做!