gpt4 book ai didi

php - Laravel:如何在预加载中获取关联表的列

转载 作者:可可西里 更新时间:2023-10-31 23:38:26 24 4
gpt4 key购买 nike

我有三个数据库表。

CREATE TABLE `tblproject` (
`ProjectID` int(11) NOT NULL,
`ProjectStatusID` varchar(30) NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE `tblSkills` (
`SkillID` int(11) NOT NULL,
`Skill` varchar(100) NOT NULL
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

CREATE TABLE `tblprojectSkills` (
`ProjectSkillID` int(11) NOT NULL,
`ProjectID` int NOT NULL,
`SkillID` int NOT NULL,
) ENGINE=InnoDB DEFAULT CHARSET=latin1;

在上面的表格中。 SkillIDtblSkillstblprojectSkills 相关。ProjectIDProjectprojectSkills

相关

我的项目模型如下。

class Project_Model extends Model
{
protected $table = "tblproject";
protected $primaryKey = "ProjectID";
public $timestamps = false;

public function ProjectSkills() {
return $this->hasMany('\App\Models\ProjectSkill_Model', 'ProjectID');
}
}

laravel 5.1 中的数据库查询如下。

\App\Models\Project\Project_Model
::with('ProjectSkills')
->where('ProjectID', '=', $ProjectID)->first();

问题

我可以得到技能ID,但是,我怎样才能从技能表中得到技能名称呢?

最佳答案

您可以使用闭包选择您想要的字段:

\App\Models\Project\Project_Model
::with('ProjectSkills' => function($q)
{
$q->select('SkillID', 'Skill');
})
->where('ProjectID', '=', $ProjectID)->first();

或者,您可以直接在模型的关系中添加您想要的字段:

public function ProjectSkills() {
return $this->hasMany('\App\Models\ProjectSkill_Model', 'ProjectID')
->select('SkillID', 'Skill');
}

关于php - Laravel:如何在预加载中获取关联表的列,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34384649/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com