Idiorm/Paris - 访问联结点 table 的列

Idiorm/Paris - Access to junction table's columns

我正在为我的新项目使用巴黎...

假设我有 3 个表:users、books 和 borrows:

用户:id/name

书籍:id/title

借:users_id/books_id/borrow_date/return_date


在书中 class:

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

在用户中 class:

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

一切正常,我可以访问每个用户的借书和之前借过单本书的用户列表,但我想知道如何访问 borrow_datereturn_date column/property 的借用 table/class?

您可以使用 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);