我有两个模型/表格:d = {1: 5, 2: 0, 3: 4, 4: 0, 5: 1}
key_max_val = sorted([(k,v) for k,v in d.items() if k in [1,2,3]])[0][0]
print(key_max_val) # Outputs 1
和publisher
发布者
campaign.
广告系列
id | name
我创建了一个关系来获取发布者的广告系列。
id | name | PubID
我相信以上内容将帮助我检索相关的广告系列,但是我对逆向关系感到困惑。
如您所见,$this->hasMany(Campaign::class, 'PubID'); /* In Publisher Model */
表中没有键campaign_id
。下面的关系足以满足反要求吗?
publisher
有人可以引导我吗?我会很感激的。
答案 0 :(得分:1)
是的,这就是所谓的one to many relationship
,这意味着一个发布者拥有许多广告系列。相反的是,活动属于发布者。
因此,为了获得发布商的所有广告系列,您可以使用:
Publisher::find($id)->campaigns;
要获取广告系列的发布者,请使用:
Campaign::find($id)->publisher;
您不需要在发布者表中使用campaign_id
,而在广告系列表中PubID
可以知道。
答案 1 :(得分:0)
答案 2 :(得分:0)
您有两个模型,并添加了两个外部ID。这是许多工作。您只需要添加带有campain_id和publiser_id的数据透视表
这是多对多关系的完美示例:一个发布者可以属于多个广告客户,而一个发布者可以具有多个发布商。
发布者
ID |姓名
活动
ID |姓名
campaign_publisher
campain_id | Publisher_id
列表中的最终表– campaign_publisher称为“数据透视表”,如主题标题所述。
所以,选项1:
class Campaign extends Model
{
/**
* The products that belong to the shop.
*/
public function publishers()
{
return $this->belongsToMany('App\Publisher');
}
}
所以,选项2:
class Publisher extends Model
{
/**
* The shops that belong to the product.
*/
public function campaigns()
{
return $this->belongsToMany('App\Campaign');
}
}