我想在休息室和城市之间建立一对多的关系 因此,一个休息室可以在许多城市 - “肯德基”=&gt;伦敦,巴黎,马德里等 出于我的目的,我使用DataMapper,但手册有点令人困惑,我收到错误 - 表'databasename.cities_lounges'不存在,但是有一个名为 lounge_cities <的表/ strong>即可。当我将其更改为cities_lounges时,它会给出不同的错误,例如描述 cities_lounges
这是lounge_cities表包含的内容:“id,lounge_id(INT,UNSIGNED),city_id(INT,UNSIGNED)
这是我的模特:
<?php
class Lounge_model extends DataMapper
{
public function __construct()
{
parent::__construct();
}
var $table = 'lounges';
var $has_one = array('city_model');
}
<?php
class City_model extends DataMapper
{
public function __construct()
{
parent::__construct();
}
var $table = 'cities';
var $has_many = array('lounge_model');
}
这是我试图让它成为我的控制器的功能:
public function id($id)
{
$lounge = new lounge_model();
$lounge->where('id', $id)->get();
$relationshiptest = $lounge->city_model->get();
var_dump($relationshiptest);
}
这就是我所遵循的:http://datamapper.wanwizard.eu/pages/accessingrelations.html
有人可以帮助我,但是不要指向我的手册,因为我很难理解......?干杯
答案 0 :(得分:1)
你有一对多的关系,所以你只需要在“休息室”数据库表中添加一列“city_model_id”......不需要“lounge_cities”表(应该是“ cities_lounges“根据”表命名规则“:
连接表必须以其加入的两个表名命名,按字母顺序排列,用下划线(_)分隔。例如,用户和国家/地区的联接表是countries_users。 (source)