Идиорм / Париж - Доступ к столбцам распределительной таблицы

Я использую Париж для моего нового проекта...

Допустим, у меня есть 3 таблицы: пользователи, книги и заимствования:

пользователи: идентификатор / имя

книги: id / title

одалживает: users_id / books_id / loan_date / return_date


В классе Книги:

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

В классе Users:

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

Все хорошо, я могу получить доступ к заимствованным книгам для каждого пользователя и список пользователей, которые раньше брали одну книгу, но мне интересно, как мне получить доступ к borrow_date а также return_date столбец / свойство таблицы / класса Борроуза?

1 ответ

Решение

Вы можете сделать это, используя Idiorm ( парижский брат).

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);
Другие вопросы по тегам