Я использую Париж для моего нового проекта …
Допустим, у меня есть 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
столбец / свойство таблицы / класса Борроуза?
Вы можете сделать это с помощью 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);
Других решений пока нет …