[英]Codeigniter datamapper one to many relationship
I have two table rostertype and rostertypepositions 我有两个表rostertype和rostertypepositions
I have created two model 我创建了两个模型
class Roster_type extends DataMapper{
var $table = "rostertype";
var $has_many = array(
'position' => array(
'class' => 'Roster_typeposition',
'other_field' => 'roster_position',
'join_self_as' => '',
'join_other_as' => 'RosterType'
)
);
function __construct($id = NULL){
parent::__construct($id);
}
function getAllRoster(){
return $this->count();
}
}
class Roster_typeposition extends DataMapper{
var $table = "rostertypepositions";
var $default_order_by = array('PositionIndex'=>'asc');
var $has_one = array(
'roster_position' => array(
'class' => 'Roster_type',
'other_field' => 'position',
'join_self_as' => 'RosterType',
'join_other_as' => ''
)
);
function __construct($id = NULL){
parent::__construct($id);
}
function get_all_positions(){
$u = $this->get_iterated();
foreach ($u as $ab=>$d){
echo "<pre>";print_r($d->roster_position->get());echo "</pre>";
}
die();
}
}
But for some reason i am getting this error 但是由于某种原因我遇到了这个错误
Error Number: 1146
Table 'ad_8cceab3cf7883a5.rostertype_rostertypepositions' doesn't exist
SELECT `rostertype`.*
FROM (`rostertype`)
LEFT OUTER JOIN `rostertype_rostertypepositions` position_rostertype_rostertypepositions ON `rostertype`.`id` = `position_rostertype_rostertypepositions`.`_id`
WHERE `position_rostertype_rostertypepositions`.`RosterType_id` = 2
Filename: /Applications/MAMP/htdocs/IBM_bluemix/Development/Draftbeast-Dev/libraries/Datamapper.php
Line Number: 1344
I dont know how it is generating that table position_rostertype_rostertypepositions
. 我不知道它是如何生成该表
position_rostertype_rostertypepositions
。 Please help and what am i doing wrong. 请帮助,我在做什么错。
Solved it by taking empty fields in model 通过采取模型中的空白字段来解决
class Roster_typeposition extends DataMapper{
var $model = 'rostertypepositions';
var $table = "rostertypepositions";
var $default_order_by = array('PositionIndex'=>'asc');
var $has_one = array(
'roster_position' => array(
'class' => 'Roster_type',
'other_field' => 'position',
'join_self_as' => 'RosterType',
)
);
And 和
class Roster_type extends DataMapper{
var $model = 'Roster_type';
var $table = "rostertype";
var $has_many = array(
'position' => array(
'class' => 'Roster_typeposition',
'other_field' => 'roster_position',
'join_other_as' => 'RosterType'
)
);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.