database - 如何使用引用 Laravel Eloquent 中另一个表的“id”的“x_id”列获取表的列(例如 x)?
问题描述
我有一个表:stage_types,包含以下列:'id'、'name'、'created_at'
另一个表:阶段,具有以下内容:'id'、'x_id'、'name'、'created_at'
说我有这个:
阶段
'id' 'stage_type_id' 'name' 'created_at'
1 1(id) name1 2020/00/00
2 1(id) name2 2020/00/00
3 2(id) name3 2020/00/00
STAGE_TYPES
'id' 'name' 'created_at'
1 东西 2020/00/00
2 东西 2020/00/00
3 东西 2020/00/00
在 stage 表中,“stage_type_id”列是使用以下命令创建的:
$table->unsignedBigInteger('stage_type_id');
$table->foreign('stage_type_id')->references('id')->on('stage_types');
我怎样才能在控制器中使用 STAGES TABLE 开始,即 DB::table('stages')..... 并使用 'stage_type_id' 列引用阶段类型的名称?
模型关系:
- 一个阶段属于一个阶段类型
- StageType 有一个阶段
(这可能是错误的做法)
解决方案
不太清楚您要达到的目标以及为什么要使用DB
外观。
如果,如你所说:
一个阶段属于一个阶段类型
然后,您将使用定义关系的函数名称来引用阶段类型:
假设您在阶段模型中有:
public function types()
{
return $this->belongsTo(StageType::class);
}
您可以参考 Stages 类型,例如:
$stage = App\Stage::first();
$nameOfStageType = $stage->types->name;
推荐阅读
- python - 无法解决“列表索引超出范围”错误
- c# - 我的类型的 SelectMany 方法应该有什么签名?
- vue.js - vuejs事件修饰符搜索列表流程
- r - 将多个 gtsummary 对象写入单个 word 文件
- spring-boot - Spring Boot 版本不匹配
- python - 将 MXNet 'pick' 运算符导出到 ONNX
- debugging - Pycharm 调试器没有名为“spacy.tokens”的模块
- javascript - videojs player.textTracks() 在 safari 上返回错误类型的对象,无法捕获 TextTrack cuechange 事件
- clickhouse - 我可以通过分布式表和单个分片同时插入分片表吗?
- angular - 角度 rxjs 订阅拆解