[英]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.