您好我的数据库中有一个表,其中包含一个整数值的列,实际上是另一个表的主键
表1:详细信息
column : subjects
value : 12,10,1,50,89,88
另一张表是主题,我应该从中获取结果。我想知道我是否可以使用我的模型获取它们,而不是每次我需要获取它们时在控制器中重复我的代码。
我知道你可以使用定义关系
$this->belongsTo()
或hasMany()
视情况而定。我想看看如果我可以在Model上使用这个范围。
我要找的最终结果是从表主题
答案 0 :(得分:0)
我建议使用polymorphic relationship,而不是在单个数据库表字段中使用逗号分隔。
你会为每个协会创建一个新记录,这对你来说可能看起来很糟糕,但这确实是值得的,与Eloquent合作,所以你不需要添加自定义逻辑来爆炸这些id并手动关联。
students
id - integer
name - string
subjects
id - integer
name - string
subjectable_id - integer
subjectable_type - string
然后在你的模特中这样的事情
class Subject extends Model
{
/**
* Get all of the owning subjectable models.
*/
public function subjectable()
{
return $this->morphTo();
}
}
class Student extends Model
{
/**
* Get all of the post's comments.
*/
public function subjects()
{
return $this->morphMany('App\Subject', 'subjectable');
}
}
然后,您可以将主题附加到许多不同的模型,就像我在此处向学生展示的那样。
编辑:如果您希望对此数据的使用方式保持相同的解释,您可以在模型中执行此操作,但如果没有看到您尝试的逻辑,则很难说重复。