【发布时间】:2023-03-11 09:46:01
【问题描述】:
我正在尝试在 Laravel 中创建一个排行榜,但我又遇到了一些问题,猜测是什么,关系。他们似乎从未在 Laravel 中为我工作。好像他们讨厌我一样。
我有一个匹配模式
<?php
namespace App\Database;
use Illuminate\Database\Eloquent\Model;
class Match extends Model
{
protected $primaryKey = 'id';
protected $table = 'matches';
public $timestamps = false;
protected $guarded = ['id'];
}
还有一个用于团队的模态,但带有 match() 函数
<?php
namespace App\Database;
use Illuminate\Database\Eloquent\Model;
class Team extends Model
{
protected $primaryKey = 'id';
protected $table = 'teams';
public $timestamps = false;
protected $guarded = ['id'];
public function matches() {
return $this->hasMany('App\Database\Match', 'team_one_id, team_two_id');
}
}
我认为问题与team_one_id, team_two_id 有关,因为团队的主键可能位于另一个表的任一列中。在matches() 上调用count() 时会引发错误。
SQLSTATE[42S22]: 未找到列:1054 未知列 'matches.team_one_id, team_two_id' in 'where 子句' (SQL: select count(*) as aggregate from
matcheswherematches.team_one_id, team_two_id= 1 和matches.team_one_id, team_two_id不为空)
【问题讨论】:
-
看看
$this->hasMany中的第二个参数 -
能否提供比赛和球队的表格结构。