繁体   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