小编Raf*_*ner的帖子

Doctrine2加入SUM

我试图找出在Doctrine 2中做到这一点的最佳方法.

我有一个账户实体,其中OneToMany为交易实体.我需要通过帐户过滤来自Transaction的所有值.在SQL中是这样的:SELECT a.*, SUM(t.amount) AS balance FROM account a INNER JOIN transaction t ON t.account_id = a.id

方法#1:

直接在实体上

class Account {
    // some other definitions

    /**
     * @OneToMany(targetEntity="Transaction", mappedBy="account")
     */
    private $transactions;

    public function getBalance() {
        $balance = 0;
        foreach ($this->transactions as $transaction){
            $balance += $transaction->getAmount();
        }
        return $balance;
    }
}
Run Code Online (Sandbox Code Playgroud)

我认为这是最糟糕的方式,因为它获取所有相关交易以获得其金额.

方法#2:

使用存储库

class TransactionRepository {
    public function getBalanceByAccount(Account $account){
        $query = $this->em->createQuery("SELECT SUM(t.amount) FROM Transaction t INNER JOIN t.Account a WHERE a.id = ?");
        // …
Run Code Online (Sandbox Code Playgroud)

php design-patterns doctrine-orm

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

xargs:未终止的引号

我正在尝试将一些 .flac 文件转换为 .mp3,以便将其导入 iTunes。我尝试使用 find、xargs 和 ffmpeg,但 xargs 给我一个未终止的引号错误(因为我的文件名中有引号)。

这是我的命令行:

MacKassner:Geto Boys kassner$ find . -type f | egrep "\.flac$" | xargs -I {} ffmpeg -i {} -ab 192k -acodec libmp3lame -ac 2 {}.mp3
Run Code Online (Sandbox Code Playgroud)

它停止并在文件名“Talkin' Loud Ain't Saying Nothin'.flac”中引发错误。

有什么技巧可以让这个发挥作用吗?

- 仅用查找解决 - 查找。-type f -name "*.flac" -exec ffmpeg -i {} -ab 192k -acodec libmp3lame -ac 2 {}.mp3 \;

mp3 ffmpeg xargs

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

标签 统计

design-patterns ×1

doctrine-orm ×1

ffmpeg ×1

mp3 ×1

php ×1

xargs ×1