【发布时间】:2013-08-19 08:46:31
【问题描述】:
我刚开始使用 ORM。我有一个问题,这是我的表--
table a - (aid, aname, atag);
table b - (bid,aid, bname, ..);
这是一对多的关系 - 即一个 aid 可以属于多个 bid 但一个 bid 只能属于一个 援助。
所以我正在尝试这段代码,在输出中我想要 - (bname,aname) 用于所有记录。
一个模型--
class A extends Eloquent {
protected $table = 'a';
protected $primaryKey = 'aid';
public function brelation() {
$this->belongsToMany('B','aid');
}
}
B型--
class B extends Eloquent {
protected $table = 'b';
protected $primaryKey = 'bid';
public function getANames() {
$this->hasOne('A','aid');
}
}
在控制器中--
foreach(B::with('getANames')->get() as $b_item){
echo $b_item->bname." , ".$b_item->aname;
}
需要澄清的几点--
1) 我必须指定外键以确保它们映射。因为在我的实际情况下,它们的名称不同。
2) 我正在使用 Laravel 4。
谁能告诉我我做错了什么以及如何获得想要的结果。
===== 更新=====
class A extends Eloquent {
protected $table = 'a';
protected $primaryKey = 'aid';
public function brelation() {
$this->belongsTo('B','aid');
}
}
我仍然无法访问控制器中的 aname 列,即 ($b_item->aname)。
【问题讨论】:
标签: php database orm laravel eloquent