Idiorm / Paris - 访问交汇处的专栏

时间:2015-11-28 06:47:15

标签: php activerecord orm has-many-through idiorm

我正在将巴黎用于我的新项目...

我们说我有3张桌子:用户,书籍和借阅:

用户:id / name

书籍:id / title

借用:users_id / books_id / borrow_date / return_date

在Books课程中:

function users()
{
    return $this->has_many_through('Users', 'Borrows');
}

在Users类中:

function books()
{
    return $this->has_many_through('User', 'Borrows');
}

一切都很好,我可以访问每个用户借来的书籍以及之前借过一本书的用户列表,但我想知道如何访问borrow_date和{{1} } Borrows table / class的列/属性?

1 个答案:

答案 0 :(得分:0)

你可以使用Idiorm(the Paris brother)来完成。

User型号:

<?php
class User extends Model {
    public static $_table = 'Users';
    public static $_id_column = 'id';

    function books()
    {
        return $this->has_many_through('User', 'Borrow');
    }

    public static function findBooksAndBorrows($id) {
        return ORM::for_table('Users')
            ->join('Borrows', array('Users.id', '=', 'Borrows.users_id'))
            ->join('Books', array('Borrows.books_id', '=', 'Books.id'));
    } 
}

在您的代码中:

$booksAndBorrows = User::findBooksAndBorrows(1)->find_array();
echo json_encode($booksAndBorrows);