dongyi1996 2015-11-28 06:47
浏览 31
已采纳

Idiorm / Paris - 访问交汇处的列

I'm using Paris for my new project...

Let's say I have 3 tables: users, books and borrows:

users: id/name

books: id/title

borrows: users_id/books_id/borrow_date/return_date


In Books class:

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

In Users class:

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

Everything is fine, I can access to borrowed books by each user and list of users who borrowed a single book before, but I'm wondering that how can I access to borrow_date and return_date column/property of Borrows table/class?

  • 写回答

1条回答 默认 最新

  • duanmiaosi0150 2015-11-28 16:31
    关注

    You can do it using Idiorm (the Paris brother).

    User model:

    <?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'));
        } 
    }
    

    In your code:

    $booksAndBorrows = User::findBooksAndBorrows(1)->find_array();
    echo json_encode($booksAndBorrows);
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 高德地图点聚合中Marker的位置无法实时更新
  • ¥15 DIFY API Endpoint 问题。
  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办