Можно ли сделать следующее в Laravel 4? ...Продвинутый whereNotNull заявление в Laravel
DB::table('myTable')
->select(DB::raw($columnNames))
->whereNotNull(function($query) use($columns) {
foreach ($columns as $column) {
$query->whereNotNull($column);
}
})
->get();
Если у меня есть следующая таблица:
table: myTable
id | name | age | weight
======================================
1 Jane NULL 150
2 NULL 12 80
3 Bob NULL NULL
4 John 22 120
5 Cody NULL NULL
Если $columns
является [age, weight]
и $columnNames
является 'age, weight'
, то применяя выше whereNotNull заявление, я ожидал бы такой вывод:
age | weight
===================
NULL 150
12 80
22 120
Как это сделать?
UPDATE:
Это условие, чтобы вернуть все строки, в которых выбранные столбцы, не все нуль. Поэтому в каждый столбец каждой строки должен быть применен параметр whereNotNull
. Если все столбцы NULL, то whereNotNull вернет false, и эта строка не должна быть частью результатов. Таким образом, должны быть возвращены только строки с AT LEAST одним значением, отличным от NULL.
Так условие: по крайней мере, один из '$ columns' не может быть' NULL'? – lukasgeiter
Я уточнил условие в моем вопросе, спасибо! – chipit24