我刚刚在使用 Idiorm/Paris 的应用程序中添加了一些连接,我发现当我通过 Model::factory() 进行搜索时,返回的对象是从连接对象获取 ID,而不是“父对象” ' 对象。
我如何告诉 Paris 哪个表别名应该构成模型?
我是在搜索上下文中这样做的,所以我不认为我可以使用 has_many() 但我很乐意犯错!
示例代码:
// Find a booking with a join
$query = Model::factory('Booking');
$query->where('booking.id', '2282');
$query->join(
'customer',
array('booking.id', '=', 'customer.booking_id'),
'customer'
);
$bookingWithJoin = $query->find_one();
// Find the same booking, without a join
$query = Model::factory('Booking');
$query->where('id', '2282');
$bookingWithoutJoin = $query->find_one();
// The booking with a join gets the ID of the customer it's joined with
echo $bookingWithJoin->id .' != '. $bookingWithoutJoin->id;
最佳答案
我发现答案是 $query->select('booking.*');
是否等同于
SELECT booking.* FROM bookings JOIN customer on booking.customer_id = customer.id
所以返回的结果不会包含customer.*
字段。
关于php - 如何告诉 Paris/ORM 哪个表用于模型?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25104614/