nextras / orm

Orm with clean object design, smart relationship loading and powerful collections.
https://nextras.org/orm
MIT License
310 stars 57 forks source link

Bad query build for sufix 'Id' in column name #259

Closed EchoZulu closed 6 years ago

EchoZulu commented 6 years ago

I have tables order_item and order.

`CREATE TABLE `order` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `order_item` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `orderId` int(11) NOT NULL,
  PRIMARY KEY (`id`),
  KEY `idorder` (`order_id`),
  CONSTRAINT `order_item_ibfk_1` FOREIGN KEY (`orderId`) REFERENCES `order` (`id`) ON DELETE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=utf8;`

And orm entities

/**
 * @property int $id {primary}
 * @property Order $order {m:1 Order::$items}
 */
class OrderItem extends \Nextras\Orm\Entity\Entity
{

}

/**
 * @property int $id {primary}
 * @property OrderItem[] $items {1:m OrderItem::$order}
 */
class Order extends \Nextras\Orm\Entity\Entity
{

}

Iterating over $order->items produce error, but if column name is changed from orderId to order_id everything works fine.

SELECT `order_item`.* FROM `order_item` AS `order_item` WHERE `order_item`.`order` IN (1)
Unknown column 'order_item.order' in 'where clause'
hrach commented 6 years ago