我只是从 ORM 开始。我有个问题,这是我的表——
表 a - (aid, aname, atag);
表 b -(出价,援助,bname,..);
这是一对多的关系 - 即一个援助可以属于多个投标,但一个投标只能属于一个援助。
所以我正在尝试这段代码,在我想要的输出中 - (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)。