获取前者的坐姿

时间:2019-07-07 14:11:22

标签: laravel laravel-5 drop-down-menu

我有两种形式;第一个是格式formers,其中包含两个字段(名称,名字)。

enter image description here

我也有trainings的形式,其中有两个字段(date_sitting,fk_former)。

enter image description here

我的问题是,如果我想增加今天(2019年7月7日)参加的其他会议,我希望仅看到今天没有接受培训的前者。

在这里,我找了一个今天坐着的前任。

enter image description here

您认为现在只有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'));
    }

1 个答案:

答案 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