我有两种形式;第一个是格式formers
,其中包含两个字段(名称,名字)。
我也有trainings
的形式,其中有两个字段(date_sitting,fk_former)。
我的问题是,如果我想增加今天(2019年7月7日)参加的其他会议,我希望仅看到今天没有接受培训的前者。
在这里,我找了一个今天坐着的前任。
您认为现在只有formers
个没有空位的人有可能吗?
编辑:2019年10月7日
控制器培训
public function index()
{
$trainings = Training::oldest()->paginate(5);
$formersNoTrainingToday = Training::whereDate('date_sitting', "!=", Carbon::today())
->orWhere('date_sitting', null)->get();
return view('admin.trainings.index', compact('trainings', 'formersNoTrainingToday'))
->with('i', (request()->input('page',1) -1)*5);
}
还有
public function create()
{
$formers = Former::all();
return view('admin.trainings.create', compact('formers','trainings'));
}
答案 0 :(得分:1)
我只希望看到今天没有受过训练的人。
好的-您可以使用以下查询来确定要显示的正确候选人列表:
$formersNoTrainingToday = Training::whereDate('date_sitting', "!=", Carbon::today())
->orWhere('date_sitting', null)->get();
这应该可以工作...但是它假设您的代码/数据库中有一些内容。如果失败,请考虑一些替换上面whereDate
部分的选项:
使用位置:
->where('date_sitting', '!=', \Carbon::today()->toDateString())
如果数据库中的该列与Carbon格式不同,则使用格式化日期:
->whereDate('date_sitting', "!=", Carbon::now()->format('m/d/Y'))
如果由于某种原因未使用Carbon,则可以尝试今天的原始查询路线:
->whereDate('date_sitting', "!=", DB::raw('CURDATE()'))
最重要的是,这里有多种方法可以关闭。但是您可能需要自行调整以适合您的需求。您可能需要考虑时区或几个小时的差异,因此可能需要添加范围或缓冲区。但是,即使不是全部,上述操作也应该使您靠近。
HTH