Laravel 5.3列中的两个唯一值

时间:2016-12-13 13:45:12

标签: mysql database laravel eloquent

我正在为媒体库制作预订系统,目标是预订房间一段时间。总共有8个时段,start_time&时间结束。

用户必须填写日期,我必须检查该日期仍有哪些时段可用。

所以,例如..数据库中只能有一行包含日期: 2016-12-08 time_slot: 3.

如何使用Eloquent检查数据库中是否存在此行?

3 个答案:

答案 0 :(得分:2)

您可以执行laravel模型查询以检查是否有任何结果,如下所示:

$data = Model::where('date','2016-12-08 ')->where('time_slot', 3)->count();

答案 1 :(得分:0)

假设您有一个包含您正在共享的字段的广告位表。槽位表:id,date,time_slot ......

$your_date = 2016-12-08;
$date = date('Y-m-d', strtotime($your_date));
$time_slot: 3;

$slot = Slot::where('date', $date)->where('slot', $time_slot)->first();

if($slot == null) {
  // book can be made
}
else {
  // already booked
}

答案 2 :(得分:0)

您可以通过Laravel查询构建器exists获取帮助,以检查字段是否存在于数据库中,如下所示:

$exists = Model::whereDate('date', '2016-12-08')
                ->where('time_slot', 3)
                ->exists();
  

这里exists返回一个布尔值,这取决于上面查询的存在!

希望这有帮助!