Rumah >pembangunan bahagian belakang >tutorial php >Menggunakan Pembantu Tarikh Relatif di Pembina Pertanyaan Laravel '
. Article
mestilah sama dengan atau lebih awal daripada masa semasa: published_at
use Illuminate\Database\Eloquent\Builder; use App\Models\Article; public function scopeActive(): Article|Builder { return $this->where('status', ArticleStatus::Published) ->where('published_at', '<=', now()); }Anda boleh menggunakan skop ini di tempat lain dalam kod anda untuk menghadkan artikel ke artikel aktif sahaja.
Article::with('user', 'category', 'tags') ->active() ->orderByDesc('published_at') ->limit(20) ->get();Sekarang, dengan Laravel 11.42, kita boleh membuat sedikit pelarasan kepada kaedah
untuk menggunakan kaedah tarikh relatif. Kaedah scopeActive()
boleh memadankan logik asal kami: whereNowOrPast
$this->where('status', ArticleStatus::Published) ->whereNowOrPast('published_at');Jika anda ingin menggunakan pembina pertanyaan untuk mencari artikel yang ditandakan
tetapi masih di masa depan, anda boleh menggunakan Published
kaedah: whereFuture()
$this->where('status', ArticleStatus::Published) ->whereFuture('published_at');Bagaimana jika anda ingin mencari artikel yang lebih awal atau lebih awal daripada tarikh hari ini? Fungsi penolong tarikh relatif baru termasuk
dan or
variasi: not
$this->whereAfterToday('published_at') ->orWhereBeforeToday('published_at');Untuk semua kaedah tarikh relatif baru yang ditambahkan dalam Laravel v11.42, lihat permintaan tarik #54408. Kaedah ini terletak dalam ciri baru yang dipanggil
. BuildsWhereDateClauses
Atas ialah kandungan terperinci Menggunakan Pembantu Tarikh Relatif di Pembina Pertanyaan Laravel '. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!