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_date
和 return_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);
我正在为我的新项目使用巴黎...
假设我有 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_date
和 return_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);