[英]Eloquent ORM query — newbie
我只是从ORM开始。 我有一个问题,这是我的话题-
表a-(帮助,名字,标签);
表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) 。
您应该注意以下几点:
如果您有一个自定义主键,则需要将雄辩模型上的$ primaryKey属性设置为数据库中的主键。
您不能将belongsToMany
关系与belongsToMany
的其他任何事物混合和匹配。 当有两个表通过数据透视表连接时, belongsToMany
专门用于此情况。 在你的情况下,B belongsTo
A,和A hasMany
B.
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.