Php 了解Laravel的关系-他们不';没有道理。。。?
我有两张桌子。这一个叫做团队:Php 了解Laravel的关系-他们不';没有道理。。。?,php,mysql,laravel,eloquent,relationship,Php,Mysql,Laravel,Eloquent,Relationship,我有两张桌子。这一个叫做团队: +------------+--------------+------+----------------------+----------+ | Column | Type | Null | Default | Comments | +------------+--------------+------+----------------------+----------+ | id | int(10
+------------+--------------+------+----------------------+----------+
| Column | Type | Null | Default | Comments |
+------------+--------------+------+----------------------+----------+
| id | int(10) | No | | |
| apikey | varchar(255) | Yes | NULL | |
| name | varchar(255) | Yes | NULL | |
| logo | varchar(255) | Yes | NULL | |
| url | varchar(255) | Yes | NULL | |
| hashtag | varchar(255) | Yes | NULL | |
| created_at | timestamp | No | 0000-00-00 00:00:00 | |
| updated_at | timestamp | No | 0000-00-00 00:00:00 | |
+------------+--------------+------+----------------------+----------+
+--------------+--------------+------+----------------------+----------+
| Column | Type | Null | Default | Comments |
+--------------+--------------+------+----------------------+----------+
| id | int(10) | No | | |
| apikey | varchar(255) | Yes | NULL | |
| name | varchar(255) | Yes | NULL | |
| team | int(11) | Yes | NULL | |
| type | varchar(255) | Yes | NULL | |
| twitch | varchar(255) | Yes | NULL | |
| mlg | int(11) | Yes | NULL | |
| url | varchar(255) | Yes | NULL | |
| twitter | varchar(255) | Yes | NULL | |
| status | int(11) | Yes | NULL | |
| viewers | int(11) | Yes | NULL | |
| created_at | timestamp | No | 0000-00-00 00:00:00 | |
| updated_at | timestamp | No | 0000-00-00 00:00:00 | |
| last_live | timestamp | No | 0000-00-00 00:00:00 | |
| last_edit_by | int(11) | Yes | NULL | |
+--------------+--------------+------+----------------------+----------+
另一个称为“拖缆”:
+------------+--------------+------+----------------------+----------+
| Column | Type | Null | Default | Comments |
+------------+--------------+------+----------------------+----------+
| id | int(10) | No | | |
| apikey | varchar(255) | Yes | NULL | |
| name | varchar(255) | Yes | NULL | |
| logo | varchar(255) | Yes | NULL | |
| url | varchar(255) | Yes | NULL | |
| hashtag | varchar(255) | Yes | NULL | |
| created_at | timestamp | No | 0000-00-00 00:00:00 | |
| updated_at | timestamp | No | 0000-00-00 00:00:00 | |
+------------+--------------+------+----------------------+----------+
+--------------+--------------+------+----------------------+----------+
| Column | Type | Null | Default | Comments |
+--------------+--------------+------+----------------------+----------+
| id | int(10) | No | | |
| apikey | varchar(255) | Yes | NULL | |
| name | varchar(255) | Yes | NULL | |
| team | int(11) | Yes | NULL | |
| type | varchar(255) | Yes | NULL | |
| twitch | varchar(255) | Yes | NULL | |
| mlg | int(11) | Yes | NULL | |
| url | varchar(255) | Yes | NULL | |
| twitter | varchar(255) | Yes | NULL | |
| status | int(11) | Yes | NULL | |
| viewers | int(11) | Yes | NULL | |
| created_at | timestamp | No | 0000-00-00 00:00:00 | |
| updated_at | timestamp | No | 0000-00-00 00:00:00 | |
| last_live | timestamp | No | 0000-00-00 00:00:00 | |
| last_edit_by | int(11) | Yes | NULL | |
+--------------+--------------+------+----------------------+----------+
如您所见,拖缆表有一个团队字段,该字段仅为团队ID
My Team.php模型已经包含以下内容:
public function streamers()
{
return $this->hasMany('Streamer', 'team');
}
这是我想做的 我想通过团队搜索拖缆,但是最终用户应该只使用名称而不使用ID。如何建立表关系,以便我可以查询拖缆表中的团队名称而不是ID?这可能吗 我本以为这正是hasOne的目的,但显然我错了。因为我显然没有拖缆ID在团队表中,因为团队上的每个拖缆ID都会很糟糕。拉威尔的关系似乎有点不对劲。。。因为hasOne适合拖缆,但它只适用于团队,但本质上拖缆有一个团队,团队属于许多拖缆,这意味着归属感是有意义的
谢谢你要找的是属于关系的 在拖缆中包括:
public function team()
{
$this->belongsTo('Team','team');
}
然后,您可以按团队查询拖缆,如下所示:
$streamer = Streamer::whereHas('team', function($q)
{
$q->where('name', 'like', $teamName);
})->get();
更多详细信息可在文档中找到:请阅读此内容,如有进一步问题,请返回