实现模型之间的简单关系

时间:2016-11-05 01:23:05

标签: php

我有两张表ordersaddresses

   ORDERS                      ADDRESSES
------------                 ------------
id                           id
customer_id                  street
address_id     --- n:1 ---   city
status                       state
total                        country
created_at                   zip

order有一个地址,address可以属于许多orders。我还有两个模型,OrderAddress来表示实体。

问题

假设视图需要在HTML表格中显示订单历史记录,该表格必须包含来自 ordersaddresses表格的信息(状态,总计,送货地址,等等。)。

执行此操作的一种方法是使用OrderAddress的两个SELECT查询将数据提取到两个独立的对象PDO::FETCH_CLASSINNER JOIN中使用PDO::FETCH_ASSOC对两个表进行查询(然后手动将它们映射到对象中)。但是,在这两种情况下,两个对象都没有连接。如果Address可以与Address一起加载会更方便,如下所示:

$order = Order::all()->with('Address')

如何使用普通PHP实现这种简单的关系?

到目前为止

我的all()方法:

public static function all() {
    return DB::run('SELECT * FROM users')->fetchAll(PDO::FETCH_CLASS, 'User');
}

并且DB类是从phpdelusions.net

借来的简单包装器

奖励:由于我有一个DB课程,我应该将withallfindwhere等方法放入父级Model班级或ORM班级位于DB之上?

0 个答案:

没有答案