首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在数据库中获得特定的记录?

如何在数据库中获得特定的记录?
EN

Stack Overflow用户
提问于 2020-03-04 02:08:43
回答 2查看 108关注 0票数 0

我用Laravel开发了一个项目,学生可以从8:00 AM - 10:00 PM中选择自己的时间表,现在在我的teacher_tbl中它有一个字段名shifts,它有am or pm的数据。

我将8:00 AM - 5:00 PM标记为am1:00 PM - 10:00 PM标记为pm,这样我就可以轻松地获取。现在我的问题是,当学生选择1:00 PM - 5:00 PM之间的时间时,我如何才能找到老师呢?它都在AM & PM下。

这就是我如何从选定的选项元素中获得学生所选择的时间。

代码语言:javascript
复制
if ($selectedTime == "8:00") 
    $shift= 'AM';
else if ($selectedTime == "9:00") 
    $shift= 'AM';
...
else if ($selectedTime == "1:00") 
    $shift= ""; //what should I label this?
...
// and so on...

Teacher::where('shifts', $shift)->get();

这是我的问题..。我该给1:00 - 5:00贴什么标签是AM还是PM?这是我搞不懂的地方。

AM教师仅在上午8点至下午5点提供,PM教师下午1点至晚上10点

假设学生选择了2PM,应该是AM老师和PM老师都会被取走,但是当选择6PM是应该只取PM教师。

我很困惑。希望有人能帮我..。

干杯。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2020-03-04 03:43:03

我假设你想让一位老师根据学生的选择选择AM,PM,或者两者兼而有之。

如果是这样的话,那么您只需像这样使用whereIn

代码语言:javascript
复制
// your shift variable here should be an array. ['AM'], ['PM'], or ['AM','PM'] should be the value
if ($selectedTime == "8:00") 
    $shift= ['AM'];
else if ($selectedTime == "9:00") 
    $shift= ['AM'];
...
else if ($selectedTime == "1:00") 
    $shift= ['AM','PM']; //what should I label this?
...
// and so on...

$teachers = Teacher::whereIn('shifts', $shift)->get();

此外,作为附带说明,我建议不要做一个非常长的,如果其他声明,因为它可能会很快失控,你可以尝试使用一个开关箱,或使用类似碳的时间比较。

票数 1
EN

Stack Overflow用户

发布于 2020-03-04 05:28:09

代码语言:javascript
复制
if ($selectedTime == "8:00") 
    $shift= ['AM'];
else if ($selectedTime == "9:00") 
    $shift= ['AM'];
...
else if ($selectedTime == "1:00") 
    $shift= ['AM','PM']; //Select both AM and PM
...
// and so on...

Teacher::whereIn('shifts', $shift)->get();

这应该是基于对问题陈述的理解来解决你的问题。

很乐意帮忙!

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/60518113

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档