我目前正在尝试基于课程和课程部分列表构建Laravel模型。对于“课程部分”数据库表中的每条记录,可能有一周中的每一天有7列。我可以有一个字段,将多个MySQL列合并到Laravel模型中的一个数组中
CourseID|SectionNumber|...|Mon|Tue|Wed|Thu|Fri|Sat|Sun|
-------------------------------------------------------
1001 | 01 |...|Mon| 0 |Wed| 0 | 0 | 0 | 0 |
诚然,这不是最好的设计数据库(这也许应该是布尔值,也可能会是有意义的关系表,而不是在同一个大表),但我没有在那个直接控制部分。
但我想要做的是将所有这些日子都存储在课程模型中的一个值$days
下的数组中,但是我不太确定该怎么做。我的最终目标是能够将CourseSection模型序列化为JSON提要。
$course->days;
//should return [Mon, Wed]
眼下,我CourseController,我有以下的代码,构造一个数组,因为它把它馈送给基于掀起了原始查询的
$days = array_where([$result->isMon, $result->isTue, $result->isWed, $result->isThu, $result->isFri, $result->isSat, $result->isSun],
function ($key, $value)
{
return $value != "0";
});
$courses[$course_key]['sections'][$result->section_number]->days = $days;
我想我的问题是,查看我可以在一个模型中做到这一切吗?是否有可能使变量等于一个数组?还是应该保留在Controller中,并将Model作为数据库中结构的直接表示形式?
我会在模型上创建一个属性,然后将它附加到附件 - 这样,您始终可以在课程中使用它。有关文档,请参阅此处:https://laravel.com/docs/5.2/eloquent-serialization#appending-values-to-json –