【发布时间】:2018-11-14 11:24:13
【问题描述】:
我正在学习 php 和 laravel。我正在为一家公司做一个粗略的测试,如果我通过了,我可以考虑加入开发团队。 crud 测试的要求之一是成员(主要对象)可能具有多种语言选项列表中的一种语言。显然,一种语言可以链接到多个成员。
所以如果我正确阅读 laravel 文档,主模型(成员)和辅助模型(语言)之间的外键将自动设置。我的问题是如何在逻辑上建立关系。
我的成员表中的一列是 language_id 列,语言表由 id(显然)和语言名称组成。
根据示例,关系应如下所示:
会员模型:
class Member extends Model
{
public function language()
{
return $this->hasMany('App\Language');
}
}
语言模型:
class Language extends Model
{
public function member()
{
return $this->belongsTo('App\Member');
}
}
但这有意义吗?成员模型本质上是说成员可以有多种语言。但事实并非如此。会员只能使用 1 种语言。
你能帮我澄清一下这个问题吗?
谢谢
【问题讨论】:
-
不应该
Language是hasMany的成员吗?然后一个成员应该只有一种语言 -
^ 你已经扭转了关系。语言有很多成员,一个成员属于一种语言
-
应该转过来,然后你得到正确的关系
-
也许公司正在寻找您是否可以自己解决逻辑而不是依赖论坛。正如其他人已经说过的那样,您的方法不对,应该是 User 模型上的 belongsTo 。
-
没错,我的关系搞错了。 TonySawlwin,我的理解是,尤其是在学习编码时,依靠论坛是件好事。它证明你可以去解决问题并通过论坛学习。无论如何,我们的开发人员对此持开放态度。感谢您的回复