I have 3 tables-
users(id,name,dob)
books(id,title,author)
issuedbooks(id,book_id,student_id,issue_date)
The relationship between user and book is many to many resulting in third table issuedbooks.
My models are-
class student extends DataMapper{
var $table="students";
var $has_many=array(
"books"=>array(
"class"=>"book",
"join_table"=>"issuedbooks",
"join_self_as"=>"student",
"join_other_as"=>"book",
"other_field"=>"students"
)
);
}
class book extends DataMapper{
var $table="books";
var $has_many=array(
"students"=>array(
"class"=>"student",
"join_table"=>"issuedbooks",
"join_self_as"=>"book",
"join_other_as"=>"student",
"other_field"=>"books"
)
);
}
This table issuedbooks has entry like-
id student_id book_id issue_date
1 2 1 2013-07-18
2 2 4 2013-07-16
3 1 5 2013-07-18
4 2 6 2013-07-18
Now I have to find out all those books which is opted by student with id 2 and issue_date 2013-7-17.
I've tried, but won't get any result.
$student=new student();
$student->get_by_id('2');
$student->books->include_join_fields()->get();
foreach($student->books as $book):
$book->where_join_field($student,'issue_date >',"2013-07-17")->get();
echo $book->title." ".$book->join_issue_date."<br />";
endforeach;
Please help me out, where am I going wrong?