当前位置: 首页 > 知识库问答 >
问题:

laravel 5.2中一列上的2个外键

韦锦程
2023-03-14

这是我的数据库模式

我有这些模型:

  • 管理员
  • 用户
  • 下注
  • 匹配
  • 团队

我不知道如何定义模型中的匹配团队之间的关系

以下是我到目前为止所做的。。。

你ser.php

public function bets()
{
    return $this->hasMany('\App\Bet');
}

打赌php

public function user()
{
    return $this->belongsTo('\App\User');
}

public function match()
{
    return $this->belongsTo('\App\Match');
}

火柴php

public function bets()
{
    return $this->hasMany('\App\Bet');
}

//?????????????

团队php

//?????????????
$team->matches();
$match->team1();
$match->team2();


谢谢

共有3个答案

罗法
2023-03-14

会是这样的。给它一个尝试。

>

  • 匹配。php

    public function team1(){
      return $this->belongsTo('App\Team', 'team1_id');
    }
    
    public function team2(){
      return $this->belongsTo('App\Team', 'team2_id');
    }
    

    团队php

    public function matches1(){
      return $this->hasMany('App\Match', 'team1_id', 'id');
    }
    
    public function matches2(){
      return $this->hasMany('App\Match', 'team2_id', 'id');
    }
    

  • 赫连捷
    2023-03-14

    您可以指定每个关系的目标列:

    public function team1() {
            return $this->belongsTo('\App\Match', 'team1_id');
        }
     public function team2() {
            return $this->belongsTo('\App\Match', 'team2_id');
        }
    

    让我知道这是否有帮助。

    宰父嘉胜
    2023-03-14

    应该是这样的:

    火柴php

    public function team1()
    {
        return $this->belongsTo('\App\Team', 'team1_id');
    }
    
    public function team2()
    {
        return $this->belongsTo('\App\Team', 'team2_id');
    }
    

    团队php

    public function matches()
    {
        return $this->hasMany('\App\Match', 'team1_id')
                    ->orWhere('team2_id', $this->id);
    }
    
     类似资料:
    • 我有一个与hibernate映射相关的查询。我必须使用hibernate将父表的2个唯一列映射为子实体中的2个外键。 前父表- 子表- 上面是两个表,和是子表中的参考键。 请帮助我使用注释在hibernate中正确映射。

    • 问题内容: TableB.TableAID的外键约束。我需要能够允许TableB.TableAID使用来自TableA.ID或TableB.ID的值,因此在单个列上有多个外键约束,我需要它允许或。谢谢! 问题答案: 这是不良设计的明显标志。您永远不需要这样做,如果您这样做,则需要重新考虑设计。 您不能使一个字段与两个不同的FK关联。

    • 问题内容: 我有这样的表: 我想将此列合并为一,但在新合并的列中必须为数字,这与给定的数字不相等。那就是如果我在上表中使用此查询并给出数字1: 我已经退货了: 什么时候应该返回此: 1是一个示例。怎么做 ? 问题答案:

    • 我有一个表,其中有3个属性作为主键产品:primary key(,,)。 现在我在另一个表中引用这个复合主键 order_details:外键(product_name,product_type,category)引用产品(product_name,product_type,category) 然而,我在控制台中得到一个错误,说缺少括号,我无法添加外键。但是,如果只在引用中添加两个列名(例如:“F

    • 问题内容: 我有一个带有2个索引的PostgreSQL表。索引之一是涵盖和列,并且是唯一的B树索引。第二索引仅覆盖该列,并且是非唯一索引。 如果第一个索引存在,那么第二个索引是否冗余?换句话说,拥有第二个索引会没有好处吗? 问题答案: postgres多列索引只能用于搜索第一列,因此在实践中是多余的。 可以将多列B树索引用于涉及该索引列的任何子集的查询条件,但是当前导(最左边)列受到约束时,该索引

    • 问题内容: 我想要一个带有来自同一表的2个外键的Django模型。这是一个事件表,其中有两列用于员工:“参与者”和“接收者”。但是我得到这个错误: 错误:一个或多个模型未通过验证:tasks.task:中间模型TaskEvent具有多个到Employee的外键,这是模棱两可的,不允许使用。 有没有更好的方法对此建模?谢谢 我想我要添加一张桌子。其中有两个记录,每个与之相关的两个雇员中的每个。有人知