标签: doctrine-1.2

如何在DQL中进行插入查询

我正在使用symfony,我想知道如何使用doctrine:dql任务进行简单插入.

./symfony doctrine:dql "<what should I put here?>"
Run Code Online (Sandbox Code Playgroud)

insert dql doctrine-1.2

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

symfony:actAs:{Timestampable:〜}

我有两个小问题:

actAs: { Timestampable: ~ }
Run Code Online (Sandbox Code Playgroud)

什么"〜"在上面的代码中意味着什么?

然后,我看到表中actAs: { Timestampable: ~ }有两个字段(created_at和updated_at).

是否可以将updated_at字段绑定到特定字段(我更新此字段,然后updated_at获取新值)?

doctrine symfony1 behavior symfony-1.4 doctrine-1.2

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

确定哪个字段导致Doctrine重新查询数据库

我正在几个Web应用程序项目中使用Doctrine和Symfony.

我已经优化了这些项目中的许多查询,只选择数据库中所需的字段.但是随着时间的推移,新的功能被添加了 - 在一些情况下 - 在代码中使用了额外的字段,导致Doctrine延迟加载器重新查询数据库并在一些页面上驱动查询数量从3到100+

所以我需要更新原始查询以包含所有必填字段.但是,Doctrine似乎没有一种简单的方法可以记录哪个字段导致发出附加查询 - 因此,筛选代码以查找原始查询中不存在的字段的使用是一项艰苦的工作.

当getter访问一个没有水合的字段时,有没有办法让Doctrine记录?

php orm doctrine doctrine-1.2

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

整数字段上的学说关系返回字符串

我的schema.yml

Organisation:
  columns:
    id: { type: integer(4), notnull: true, unique: true, primary: true, autoincrement: true }
    name: { type: string(100), notnull: true, unique: true }
    parent_organisation_id: { type: integer(4), notnull: false }

  relations:
    ParentOrganisation: { class: Organisation, local: parent_organisation_id, foreignAlias: ChildOrganisations }
Run Code Online (Sandbox Code Playgroud)

一些组织存储了整数值0,并且没有这样的organisation_id.令我惊讶的是,当我运行此代码时

class organisationActions extends autoOrganisationActions{

    public function executeEdit(sfWebRequest $request){

        $this->organisation = $this->getRoute()->getObject();
        $p = $this->organisation->getParentOrganisationId();
        var_dump($p);
Run Code Online (Sandbox Code Playgroud)

结果是字符串(1)"0"

为什么这不返回整数,所以我可以比较=== 0

php doctrine doctrine-1.2 symfony doctrine-orm

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

Doctrine_RawSql查询中的聚合值

是否可以在Doctrine_RawSql查询中使用聚合值?这是我正在尝试做的事情:

$q = new Doctrine_RawSql();
$q->select('{q.*}, AVG(a.value) AS avg');
$q->from('-- complex from clause');
$q->addComponent('q', 'Question');
Run Code Online (Sandbox Code Playgroud)

但是,Doctrine创建的SQL仅保留表中的列question并省略聚合值avg.

php doctrine doctrine-1.2

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

Doctrine:按别名命名,列名相同

我有以下DQL(Doctrine1.2):

$dql->select('sum(t.column1) column1, t.column2')
    ->from('Table t')
    ->groupBy('t.column2')
    ->orderBy('column1');
Run Code Online (Sandbox Code Playgroud)

但生成的SQL与以下DQL相同:

$dql->select('sum(t.column1) column1, t.column2')
    ->from('Table t')
    ->groupBy('t.column2')
    ->orderBy('t.column1'); //Ordered by column1 not by sum(t.column1)
Run Code Online (Sandbox Code Playgroud)

是否可以强制Doctrine使用别名column1而不是列名t.column1

我需要这个,因为我想从两个非常相似的DQL的模型中获得相同的输出格式.(最近由同一模板呈现).另一个DQL看起来像这样:

$dql->select('t.column1, t.column2')
    ->from('Table t')
    ->orderBy('t.column1');
Run Code Online (Sandbox Code Playgroud)

可能的解决方法是选择sum(t.column1)两次.首先使用别名column1,第二次使用其他别名,为什么在passwd之后使用orderBy函数,但它看起来不是最清晰的解决方案.

有什么建议?

谢谢

php mysql doctrine doctrine-1.2

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

Doctrine DQL:左连接的条件

我有一个一对多的架构:桌面有很多账单.是否可以使用某些Bill记录获取所有Desk记录.

我想这样做:

//DeskTable.class.php

public function getDesks()
{
    $q = $this->createQuery('d')
      ->leftJoin('d.Bills b')
      ->where('b.is_open = ?', true);

    return $q->execute();
}
Run Code Online (Sandbox Code Playgroud)

但是我得到了一张有开放票据的书桌列表,而我需要所有书桌.这可能吗?

我完全不是一个sql的孩子,所以请耐心等待我.

doctrine symfony1 doctrine-1.2

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

在symfony 1.4中使用Doctrine ORM更新mysql表时如何获取结果信息

我正在使用symfony 1.4和使用Doctrine ORM进行开发.在构建模式和模型之后,我有一些用于数据库的类.我也可以使用Doctrine_query ....我唯一想知道的是:

我需要更新表格.

Doctrine_Query::create()->update('table')->.....->execute().
Run Code Online (Sandbox Code Playgroud)

要么

$tbl = new Table();
$tbl->assignIdentifier($id);
if($tbl->load()){
    $tbl->setFieldname('value');
    $tbl->save();
}
Run Code Online (Sandbox Code Playgroud)

我怎么能得知它是否是成功的查询结果?以及更新了多少行.

ps同样的问题是删除操作.

php orm doctrine symfony-1.4 doctrine-1.2

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

学说查找魔法空值

我想知道是否还有使用doctrine的魔术方法来寻找空值.例如:

Doctrine::getTable('myClass')->findByDeletedAt(null);
Run Code Online (Sandbox Code Playgroud)

基本上,我想返回所有未删除的记录.我已经尝试了上述内容,但它似乎没有用.

有任何想法吗?

php doctrine findby doctrine-1.2

3
推荐指数
2
解决办法
2万
查看次数

Doctrine查询:混淆addWhere,以及Where,或者Where

我有一个问题:

$q->andWhere($q->getRootAlias().'.is_published = ?', 1);
$q->andWhere($q->getRootAlias().'.published_at >= ?', time());
$q->leftJoin($q->getRootAlias().'.EventLdapGroup l');
$q->andWhereIn('l.ldap_group_id', $permissions_id );
$q->orWhere('l.ldap_group_id IS NULL);
Run Code Online (Sandbox Code Playgroud)

哪个输出:

FROM 
    Event r LEFT JOIN r.EventLdapGroup l 
WHERE 
    r.is_published = ? AND 
    r.published_at >= ? AND 
    l.ldap_group_id IN (?, ?) OR 
    l.ldap_group_id IS NULL
Run Code Online (Sandbox Code Playgroud)

唯一的问题是,如果ldap_group_id为null(最后一个条件),它将删除is_publishedpublished_at条件.

我想要类似的东西[值是在ldap_group_id中,或者它是否为null]:

FROM 
    Event r LEFT JOIN r.EventLdapGroup l 
WHERE 
    r.is_published = ? AND 
    r.published_at >= ? AND 
    (l.ldap_group_id IN (?, ?) OR l.ldap_group_id IS NULL)
Run Code Online (Sandbox Code Playgroud)

我必须说,我已经迷失在条件复杂的地方.怎么实现呢?

谢谢

sql doctrine doctrine-1.2

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