Получить доступность формирователей для сидения - PullRequest
0 голосов
/ 07 июля 2019

У меня есть две формы;первая форма formers с двумя полями (имя, имя).

enter image description here

У меня также есть форма trainings с двумя полями (date_sitting, fk_former).

enter image description here

Моя проблема, если я хочу добавить другое заседание сегодня (07/07/2019), я хотел бысм. только тех, кто не обучен сегодня.

Здесь я найду бывшего, который сегодня сидит.

enter image description here

DoВы думаете, что возможно получить только formers, у которых пока нет сидения?

Редактировать: 10/07/2019

Тренировка контроллера

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 Ответ

1 голос
/ 07 июля 2019

Я хотел бы видеть только тех, кто не прошел обучение сегодня.

Конечно, вы можете определить свой правильный список кандидатов для показа, используя следующий запрос:

$formersNoTrainingToday = Training::whereDate('date_sitting', "!=", Carbon::today())
           ->orWhere('date_sitting', null)->get();

Это должно работать ... но предполагает несколько вещей в вашем коде / db.Если это не помогло, рассмотрите несколько вариантов заменить раздел 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

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...