o-g-r
@o-g-r (yamada hanako)

Are you sure you want to delete the question?

Leaving a resolved question undeleted may help others!

laravel  検索条件絞り込み

Q&A

Closed

解決したいこと

検索時に、日付で期間を決めて絞り込みしたい。

create_date(2022/3/23〜2022/3/26)の間を検索したい時はどうかいたらよいでしょうか?
また、片方が入力されていなくても検索したいです。
ご教授頂けたらと思います。

自分でしたこと

        $from = date('2022-03-22');
        $to = date('2022-03-26');
        
        $query -> whereBetween('create_date', [$from, $to])->get();

これだと同一日の場合とれますか?
また、片方が入力されていない場合は値がとれないですか?その場合どう書いたらよいでしょうか?
ご教授願いします。

0

1Answer

これだと同一日の場合とれますか?

'<='か'<'かということでしょうか?

であれば試したところ'<='でした。

ちなみにlaravel8.xで試しました。

片方が入力されていない場合は値がとれないですか?

片方がnullの場合ということでしたらこちらが参考になるかと

その場合どう書いたらよいでしょうか?

個人的には普通のwhereでいいんじゃないかと

$qb = Model::query();
if (isset($from)) {
    $qb->where('create_date', '>=', $from)
}
if (isset($to)) {
    $qb->where('create_date', '<=', $to);
}

$result = $qb->get();

多分期待する値が取れるんじゃないかと

whereBetweenにこだわるならわかりません!

0Like

Comments

  1. @o-g-r

    Questioner

    ありがとうございます。whereBetweenにこだわらずやってみたいと思います。

Your answer might help someone💌