代码之家  ›  专栏  ›  技术社区  ›  calumbrodie

使用doctrine ORM从两个表中检索信息的正确方法是什么

  •  0
  • calumbrodie  · 技术社区  · 15 年前

    我试图在两个表上执行一个简单的连接,但是找不到正确的语法来使用-我知道我缺少了一些简单的东西。

    从“users”表中,我需要id(工作正常) 从“meta”表中,我需要姓(不起作用)

    $q = Doctrine_Query::create()
    ->from('Users u')
    ->leftJoin('u.Meta m');
    
    $users = $q->execute();
    
    //attempt 1    
    foreach($users as $user){
        $user_array[$user->id] = $user->last_name;
    }
    
    //attempt 2   
    foreach($users as $user){
        $user_array[$user->id] = $user->m.last_name;
    }
    

    我也试过添加一个显式的 选择(u.id,m.姓氏) 但结果总是一样的

    Uncaught exception 'Doctrine_Record_UnknownPropertyException' with message
    'Unknown record property / related component "last_name" on "Users"
    

    显然,我试图访问的属性不在users表中。 -查询工作正常,就好像我没有请求“姓氏”字段一样-我的应用程序按预期工作。。

    //proof   
    foreach($users as $user){
        $user_array[$user->id] = 'fake_last_name!';
    }
    

    Doctrine Documentation: Join Syntax

    1 回复  |  直到 15 年前
        1
  •  1
  •   calumbrodie    15 年前

    我设法解决了。。。

    http://www.doctrine-project.org/documentation/manual/1_2/en/working-with-models

    foreach($users as $user){
        $user_array[$user->id] = $user->Meta->last_name;
    }
    
    推荐文章