簡體   English   中英

雄辯的ORM查詢-新手

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

您應該注意以下幾點:

  1. 如果您有一個自定義主鍵,則需要將雄辯模型上的$ primaryKey屬性設置為數據庫中的主鍵。

  2. 您不能將belongsToMany關系與belongsToMany的其他任何事物混合和匹配。 當有兩個表通過數據透視表連接時, belongsToMany專門用於此情況。 在你的情況下,B belongsTo A,和A hasMany B.

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM