php - 如何告诉 Paris/ORM 哪个表用于模型?

标签 php mysql sql idiorm

我刚刚在使用 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/

相关文章:

PHP:通过 HTTP 和命令行运行脚本时的结果不同

php - 如何在 Yii 中不刷新页面的情况下更新下拉列表更改时的文本字段?

mysql - Clickhouse 列结构

php - WordPress:根据发布日期在之前发布的内容之后(或之前)添加文本

php - 在 PHP 中向下舍入到最接近的半整数

php - 在 $_POST 中使用从数据库传递给 $_GET 的变量

mysql.service 丢失但显示在列表中 - 安装失败

c# - 按 Entity Framework 中子列表的第一项对集合进行排序

java - Eclipselink:从 JOIN 查询创建对象

mysql - 将文件保存为 MYSQL 数据库中的 blob 或文件路径