未定义的属性访问树枝中的属性

时间:2015-08-20 12:28:48

标签: symfony doctrine-orm twig

访问我的' userEntity'的属性的正确方法是什么?对象

{{ userEntities[1].jobs.id }}

给出错误

  

未定义属性:Baker \ TimeSlipBundle \ Entity \ UserDetails :: $ Jobs

转储{{ dump(userEntities[1] }}给了我。

UserDetails {#526 ▼
  -jobs: Jobs {#520 ▼
    #clients: null
    #company: null
    #scopes: PersistentCollection {#597 ▶}
    #workHours: PersistentCollection {#599 ▶}
    #userDetails: PersistentCollection {#601 ▶}
    -id: 52
    -description: "From Web"
    -jobNumber: "344.00"
    -task: null
    -currencies: null
    -active: 0
  }
  -user: User {#524 ▶}
  -id: 9
  -userrate: "2300"
  -position: "m"
}

同时调用{{ userEntities[1].id }}可以正常工作

3 个答案:

答案 0 :(得分:0)

你应该在UserDetails类中有一个getter方法,用于" jobs"属性

答案 1 :(得分:0)

检查您的Entity类中的作业属性名称是什么(Baker \ TimeSlipBundle \ Entity \ UserDetails.php)

答案 2 :(得分:0)

您的错误说UserDetails::$Jobs,在您呼叫userEntities[1].jobs.id的树枝中,以及实体$jobs的转储返回属性Jobs

因此,您的错误应该是:Undefined property: Baker\TimeSlipBundle\Entity\UserDetails::$jobs而不是$Jobs。命名关系属性时要小心。 $jobs建议userEntitiesUserDetail而不是UserDetails也可以......)可以包含多个jobs,但转储展示a userEntities除外}只能有一个$jobs。  这很令人困惑。

我暂时无法看到你的地图,但我认为这是你的 UserDetails::$jobs关联mappedBy选项:

必须等于mappedBy="jobs",但肯定当前等于"mappedBy=Jobs"

请向您的两个实体显示关联映射。