Ho una tabella come questa:laravel Eloquente dove il campo è X o null
table
- field1: tinyint
- field2: varchar (nullable)
- datefield: timestamp (nullable)
Ora voglio ottenere tutte le voci in cui field1 è 1, campo2 è nullo e dove datefield è più piccolo di X o nullo. Ho già provato qualcosa di simile:
$query = Model::where('field1', 1)
->whereNull('field2')
->where('datefield', '<', $date)
->orWhereNull('datefield');
ma questo non funziona. Ricevo sempre tutte le voci in cui il campo data è nullo. Non importa quali siano gli altri campi. Ho anche provato a dividerlo in due query: prima prendi ogni riga dove il campo data è più piccolo di X o null e poi (basato su di esso) ottieni ogni campo dove field1 è 1 e field2 è null.
Il risultato è stato lo stesso. Qualche idea su come farlo?
Questo mi ha salvato un po 'di frustrazione! Grazie. –
può essere fatto da qualcosa di simile: whereIn ('column', ['value', null])? – MASh
@MASh non sono sicuro. L'ho scritto un po 'di tempo fa ed era l'approccio migliore all'epoca. Perché non provarlo? – James