小编pet*_*iss的帖子

在Symfony2 dev env控制器中捕获swiftmailer异常

我不知道为什么我没有在我的控制器中捕获Swiftmailer的异常.我做错了什么,或者错过了什么?

在控制器中我有:

try {
    $this->get('mailer')->send($email);
}
catch (\Swift_TransportException $e) {
    $result = array(
        false, 
        'There was a problem sending email: ' . $e->getMessage()
    );
}
Run Code Online (Sandbox Code Playgroud)

在它到达我的代码之前它似乎被Symfony抓住了,所以我没有能够自己处理错误,而是获得标准的500页 Swift_TransportException: Connection could not be established

如果无法发送电子邮件,则不需要暂停应用程序,因为电子邮件并不重要 - 我只是想发出通知.

也许有办法禁用Symfonys捕获某些异常或某些控制器?

swiftmailer symfony

10
推荐指数
1
解决办法
4484
查看次数

由于外键约束,Symfony2,DoctrineFixturesBundle无法加载fixture

我有一个公司实体,其中每个公司在分层树结构中有另一个母公司.

应用程序中的一切正常,所以我确定我的实体类是正确的.

问题是,如果数据库中已有内容,那么就这样做了

doctrine:fixtures:load
Run Code Online (Sandbox Code Playgroud)

给出了这个错误:

[PDOException]                                                                                                                                                                                                                                              
SQLSTATE[23000]: Integrity constraint violation: 1451 Cannot delete or update a parent row: a foreign key constraint fails
Run Code Online (Sandbox Code Playgroud)

我相当确定问题是load:fixtures必须截断表,但它不能得到这个错误.

我不知道如何解决这个问题,而不在黑客攻击Doctrine之前禁用关键约束.这不是一个长期的解决方案.

数据结构中的其他关系不会导致问题,因为学说似乎以正确的顺序清除以避免问题,但是公司表是自我引用的,它会失败.

这是我的实体.

class Company
{
/**
 * @var integer $id
 *
 * @ORM\Id
 * @ORM\Column(name="id", type="integer")
 * @ORM\GeneratedValue(strategy="AUTO")
 */
protected $id;

/**
* @var string $name
* @ORM\Column(type="string", length=100)
*/    
protected $name;

/**
 * @ORM\ManyToOne(targetEntity="Company", inversedBy="children")
 * @ORM\JoinColumn(name="parent_id", referencedColumnName="id")
 */
protected $parent;

/* other properties here..... */

}
Run Code Online (Sandbox Code Playgroud)

我使用Symfony 2.0.7和最新的deps,以及MySQL 5.5

foreign-keys symfony doctrine-orm

7
推荐指数
1
解决办法
6478
查看次数

Symfony 2形成,在嵌入式集合中嵌入集合

我有一个数据结构,其中一个主题有很多问题(一对多),一个问题有很多答案(一对多).

我已经将问题设置为主题形式的嵌入式集合,并且由于菜谱条目的原因,我已经完成了100%的工作.

当我尝试开发这个以在问题表单中嵌入答案表单的集合时,我遇到了问题.

包含顶级原型表单的data-prototype属性在其中具有完整的表单深度,因此包括问题和答案的原型.但它__name__为每个级别使用相同的占位符.

<div id="topic_questions___name__">
<div class="control-group">
    <label for="topic_questions___name___questionText" class="control-label">question</label>
    <div class="form-row-errors"></div>
    <div class="controls">
        <textarea id="topic_questions___name___questionText" name="topic[questions][__name__][questionText]" required="required" class="input-block-level"></textarea>
    </div>
</div>
<div class="control-group">
    <label class="control-label">answers</label>
    <div class="controls">
        <div id="topic_questions___name___answers"     data-prototype="&lt;div class=&quot;control-group&quot;&gt;&lt;label class=&quot;control-label&quot;&gt;__name__label__&lt;/label&gt;&lt;div class=&quot;controls&quot;&gt;&lt;div id=&quot;topic_questions___name___answers___name__&quot;&gt;&lt;div class=&quot;control-group&quot;&gt;&lt;label for=&quot;topic_questions___name___answers___name___answerText&quot; class=&quot;control-label&quot;&gt;option&lt;/label&gt;&lt;div class=&quot;form-row-errors&quot;&gt;&lt;/div&gt;&lt;div class=&quot;controls&quot;&gt;&lt;input type=&quot;text&quot; id=&quot;topic_questions___name___answers___name___answerText&quot; name=&quot;topic[questions][__name__][answers][__name__][answerText]&quot; required=&quot;required&quot; maxlength=&quot;255&quot; /&gt;&lt;/div&gt;&lt;/div&gt;&lt;input type=&quot;hidden&quot; id=&quot;topic_questions___name___answers___name___sortOrder&quot; name=&quot;topic[questions][__name__][answers][__name__][sortOrder]&quot; /&gt;&lt;/div&gt;&lt;/div&gt;&lt;/div&gt;"></div>
    </div>
</div>
Run Code Online (Sandbox Code Playgroud)

您可以在底部看到真正的长行,我猜这是答案形式的原型 - 原型(!).我无法看到只替换问题相关的[__name__]占位符而不是答案相关的占位符.

做得很正常

var newForm = prototype.replace(/__name__/g, collectionHolder.children().length);
Run Code Online (Sandbox Code Playgroud)

当创建问题表单的实际实例时,当然会替换__name__具有相同值的所有实例,因此当为"答案"表单创建数据原型时,它已经替换了所有占位符.

当我点击添加一个真实的问题表单时,这就是数据原型在答案表单中的样子

<div class="control-group">
<label class="control-label">1label__</label>
<div class="controls">
    <div id="topic_questions_1_answers_1">
        <div …
Run Code Online (Sandbox Code Playgroud)

php symfony

7
推荐指数
1
解决办法
2679
查看次数

在 PHP 中,从基类的实例创建扩展类的对象

如果我有一个扩展类 Bar 的类 Foo 和一个 Bar 的实例,那么是否可以使用该 Bar 实例来“填充”一个新的 Foo 实例?

本质上,我只能检索 Bar,但我想在我的代码中使用 Foo,因为它为我提供了许多其他方法。

我看到很多解决方案都提出了类似的问题,但它们似乎都是 python 或 c#。

我无法使用 ReflectionClass::newInstanceArgs,因为我无法访问进入 Bar 构造函数的数据以首先创建它。

php

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

完成后调用自身的php脚本 - 无限期

我有一个PHP脚本,可以执行2到10分钟的任何时间.它从网络上获取信息,因此它的时间取决于许多其他事情的谈话速度.

我曾经每15分钟在一个cron上运行脚本,但有时它只需要2分钟就可以运行.

所以我想知道我是否可以以某种方式使它永久运行 - 一旦完成任务就将自己重新设置?这样,无论多长时间,它都会立即开始.

php cron

4
推荐指数
1
解决办法
1932
查看次数

Git:如何回放远程源上的Master分支

当我在一个私人项目上寻找bug并将它们推送到远程源(我自己的私人vps)时,我向Master分支做了5次提交.

然后我看到提交4和5将在其他地方引起麻烦,我需要撤消它们,所以我再次检查提交3,从那一点做了一个新的分支"Dev",并做了一些提交正确解决问题.

然后我做了

git reset - hard HEAD~2在Master上把它拉回到我分支开发的那一点.

然后我做了git merge to fast forward Master回到Dev分支的末尾.

所以现在我有一个本地存储库,Dev和Master都指向同一个最新版本的项目,并带有最新的bug修复.

问题是,当我尝试将项目现在推送到原点时,它会失败并给出一条错误消息:

![拒绝]主 - >主(非快进)错误:未能将某些引用推送到'myserver ... myproject.git'

我做错了什么,我该如何解决?

谢谢

git push

3
推荐指数
1
解决办法
3990
查看次数

mySQL查询,用于由连接列限制和排序的离散结果

我有两张桌子

User
  id
  name

Result
  id
  user_id
  score
  created_at
Run Code Online (Sandbox Code Playgroud)

每小时一个cron作业运行并将数据放入每个用户的结果表中 - 根据一些外部变量参数为它们分配一个分数.

因此,Result表包含每个用户的许多记录.

我想在任何给定的点上回顾"前十名"用户.因此,每个用户只应返回一行,并且应该包含最近的可用分数,理想情况下,只有10行与这些分数最高的用户相关.

我目前正在获取所有结果,并使用php进行腿部工作,如果由数据库处理,我相当肯定会更快更高效.但我不知道从哪里开始.

mysql join

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

标签 统计

php ×3

symfony ×3

cron ×1

doctrine-orm ×1

foreign-keys ×1

git ×1

join ×1

mysql ×1

push ×1

swiftmailer ×1