2017-08-02 106 views
0

我在2个表OrdersUsers之间存在关系,并且信息显示正确。在Symfony中编辑注册表时出错

用户映射:

BackendBundle\Entity\Users: 
type: entity 
table: users 
id: 
    id: 
     type: integer 
     nullable: false 
     options: 
      unsigned: false 
     id: true 
     column: ID 
     generator: 
      strategy: IDENTITY 
fields: 
    username: 
     type: string 
     nullable: true 
     length: 50 
     options: 
      fixed: false 
    yourname: 
     type: string 
     nullable: true 
     length: 50 
     options: 
      fixed: false 
    firstname: 
     type: string 
     nullable: true 
     length: 150 
     options: 
      fixed: false 
    lastname: 
     type: string 
     nullable: true 
     length: 150 
     options: 
      fixed: false 
    middlename: 
     type: string 
     nullable: true 
     length: 10 
     options: 
      fixed: false 
    address: 
     type: string 
     nullable: true 
     length: 500 
     options: 
      fixed: false 
    address2: 
     type: string 
     nullable: true 
     length: 500 
     options: 
      fixed: false 
    apartment: 
     type: string 
     nullable: true 
     length: 50 
     options: 
      fixed: false 
    pobox: 
     type: string 
     nullable: true 
     length: 50 
     options: 
      fixed: false 
    city: 
     type: string 
     nullable: true 
     length: 150 
     options: 
      fixed: false 
    state: 
     type: string 
     nullable: true 
     length: 150 
     options: 
      fixed: false 
    zipcode: 
     type: string 
     nullable: true 
     length: 100 
     options: 
      fixed: false 
    country: 
     type: string 
     nullable: true 
     length: 255 
     options: 
      fixed: false 
    countrycode: 
     type: string 
     nullable: true 
     length: 2 
     options: 
      fixed: false 
    phone: 
     type: string 
     nullable: true 
     length: 150 
     options: 
      fixed: false 
    fax: 
     type: string 
     nullable: true 
     length: 150 
     options: 
      fixed: false 
    email: 
     type: string 
     nullable: true 
     length: 255 
     options: 
      fixed: false 
    password: 
     type: string 
     nullable: true 
     length: 50 
     options: 
      fixed: false 
    company: 
     type: string 
     nullable: true 
     length: 255 
     options: 
      fixed: false 
    type: 
     type: decimal 
     nullable: true 
     precision: 18 
     scale: 0 
    datein: 
     type: datetime 
     nullable: true 
lifecycleCallbacks: { } 

映射订单:

BackendBundle\Entity\Orders: 
type: entity 
table: orders 
indexes: 
    fk_order_user1_idx: 
     columns: 
      - user_id 
id: 
    orderid: 
     type: integer 
     nullable: false 
     options: 
      unsigned: false 
     id: true 
     column: OrderID 
     generator: 
      strategy: IDENTITY 
fields: 
    orderdate: 
     type: datetime 
     nullable: true 
     column: OrderDate 
    ordernumber: 
     type: string 
     nullable: true 
     length: 50 
     options: 
      fixed: false 
     column: OrderNumber 
    customername: 
     type: string 
     nullable: true 
     length: 250 
     options: 
      fixed: false 
     column: CustomerName 
    customeraddress: 
     type: string 
     nullable: true 
     length: 500 
     options: 
      fixed: false 
     column: CustomerAddress 
    countrycode: 
     type: string 
     nullable: true 
     length: 2 
     options: 
      fixed: false 
     column: CountryCode 
    shippingaddress: 
     type: string 
     nullable: true 
     length: 500 
     options: 
      fixed: false 
     column: ShippingAddress 
    status: 
     type: string 
     nullable: true 
     length: 50 
     options: 
      fixed: false 
     column: Status 
    subtotal: 
     type: decimal 
     nullable: true 
     precision: 18 
     scale: 2 
     column: SubTotal 
    shippingcost: 
     type: decimal 
     nullable: true 
     precision: 18 
     scale: 2 
     column: ShippingCost 
    tax: 
     type: decimal 
     nullable: true 
     precision: 18 
     scale: 2 
     column: Tax 
    discount: 
     type: decimal 
     nullable: true 
     precision: 18 
     scale: 2 
     column: Discount 
    totalorder: 
     type: decimal 
     nullable: true 
     precision: 18 
     scale: 2 
     column: TotalOrder 
    shippingcarrier: 
     type: string 
     nullable: true 
     length: 50 
     options: 
      fixed: false 
     column: ShippingCarrier 
    shippingtype: 
     type: string 
     nullable: true 
     length: 50 
     options: 
      fixed: false 
     column: ShippingType 
    shippingtrackingnumber: 
     type: string 
     nullable: true 
     length: 50 
     options: 
      fixed: false 
     column: ShippingTrackingNumber 
    paymentmethod: 
     type: string 
     nullable: true 
     length: 50 
     options: 
      fixed: false 
     column: PaymentMethod 
    paymentapproval: 
     type: string 
     nullable: true 
     length: 100 
     options: 
      fixed: false 
     column: PaymentApproval 
    cc: 
     type: string 
     nullable: true 
     length: 20 
     options: 
      fixed: false 
     column: CC 
    ccexp: 
     type: string 
     nullable: true 
     length: 10 
     options: 
      fixed: false 
     column: CCExp 
    ccv: 
     type: string 
     nullable: true 
     length: 10 
     options: 
      fixed: false 
     column: CCV 
    memo: 
     type: string 
     nullable: true 
     length: 500 
     options: 
      fixed: false 
     column: Memo 
    sessionid: 
     type: string 
     nullable: true 
     length: 50 
     options: 
      fixed: false 
     column: SessionID 
    discountcode: 
     type: string 
     nullable: true 
     length: 50 
     options: 
      fixed: false 
     column: DiscountCode 
    hasshipgift: 
     type: boolean 
     nullable: true 
     column: HasShipGift 
    message: 
     type: string 
     nullable: true 
     length: 300 
     options: 
      fixed: false 
    imagen: 
     type: integer 
     nullable: true 
     options: 
      unsigned: false 
    siteType: 
     type: string 
     nullable: true 
     length: 50 
     options: 
      fixed: false 
     column: site_type 
    shippingname: 
     type: string 
     nullable: true 
     length: 250 
     options: 
      fixed: false 
     column: ShippingName 
manyToOne: 
    user: 
     targetEntity: Users 
     cascade: { } 
     fetch: LAZY 
     mappedBy: null 
     inversedBy: null 
     joinColumns: 
      user_id: 
       referencedColumnName: id 
     orphanRemoval: false 
lifecycleCallbacks: { } 

我需要修改订单的记录,所以我把下面的代码清单:

<td><a class="btn btn-primary" href="{{path('edit_orderlist',{ 'id': ordenes.orderid })}}">Edit</a></td> 

但它到达控制器的那一刻,我用这个代码:

$em = $this->getDoctrine()->getManager(); 
    $orders_repo=$em->getRepository("BackendBundle:Orders"); 
    $order=$orders_repo->find($id); 
    $form = $this->createForm(OrderType::class, $order); 

它表明我这个错误:

Could not resolve type of column "id" of class "BackendBundle\Entity\Users"

Orders已经OrderId主键和用户作为主键id

任何想法来解决这个问题?

+0

你能告诉我们你的Users类的映射吗? – Fr0z3n7

+0

是的,我在问题中添加了映射 – juanitourquiza

回答

0

调查和阅读不同的建议后,该问题是在表的.yml文件,并在实体,Symfony的显示这个错误

introducir la descripción de la imagen aquí

为了验证这一点创建测试环境和进行导入和创建实体来检查是否有错误。

下面的代码:

//BackendBundle\Entity\Orders: 
type: entity 
table: orders 
indexes: 
    fk_Orders_Users_idx: 
     columns: 
      - Users_ID 
...... 
manyToOne: 
    users: 
     targetEntity: Users 
     cascade: { } 
     fetch: LAZY 
     mappedBy: null 
     inversedBy: null 
     joinColumns: 
      Users_ID: 
       referencedColumnName: ID 
     orphanRemoval: false 
lifecycleCallbacks: { } 

Users.orm.yml是和以前一样

另一个变化是在实体​​

/** 
* @var \BackendBundle\Entity\Users 
*/ 
private $users; 
......... 
/** 
* Set users 
* 
* @param \BackendBundle\Entity\Users $users 
* 
* @return Orders 
*/ 
public function setUsers(\BackendBundle\Entity\Users $users = null) 
{ 
    $this->users = $users; 

    return $this; 
} 

/** 
* Get users 
* 
* @return \BackendBundle\Entity\Users 
*/ 
public function getUsers() 
{ 
    return $this->users; 
} 

有了这些改变一切正常。