我们在 laravel 模型中创建关系时遇到了问题。
要求:我们想以这样的方式创建一个关系,我们有三个表
block_primary_table
block_id | 块名 |
---|---|
1 | XYZ |
2 | 美国广播公司 |
块翻译表
ID | 语言标识 | block_id | 块名 |
---|---|---|---|
1 | 1 | 1 | XYZ-英文 |
1 | 2 | 1 | XYZ-印地语 |
1 | 1 | 2 | ABC-英语 |
1 | 2 | 2 | ABC-印地语 |
和第三个用户表,我们在其中捕获用户区域
用户区域
用户身份 | 用户名 | 区 | 堵塞 |
---|---|---|---|
1 | ABC用户 | 1 | 1 |
我们有一个模块的表单,其中我们有一个区域和块字段,块字段依赖于区域字段,因此在创建新条目时,块会根据区域值加载到下拉列表中,以便我们可以显示该值很容易,因为它将由 ajax 处理。
但是在编辑操作期间,假设我们正在从 user_area 编辑 user_id 1,此时现有值需要进入表单,但是这里像其他字段值一样的问题是正确的,但是对于块,在编辑操作期间,值出现使用实体的字段,在模型中定义,所以在那个关系中我们有
//relationship with block translation table
public function blockRelation() {
return $this->belongsTo(blockTranslation::class, 'block','block_id');
}
因此,我们期望它将通过将块(user_area 的外键)映射到 block_translation_table 的 block_id(block_translation_table 的非主键)来从块转换表中返回值。
我们是相关的列名,它仍然是将 user_area 表的块列与 block_translation_table 的 id 列映射。
所以请提供问题的解决方案,比如我们如何在 laravel 模型中为外键和非主键创建关系。