Laravel использует CASE, который предоставляет данные из подзапросаPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Laravel использует CASE, который предоставляет данные из подзапроса

Сообщение Anonymous »

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

Код: Выделить всё

select *,
CASE
WHEN check_out_time >= now() + INTERVAL 25 HOUR THEN "Requires Attention"
WHEN (
SELECT count(*)
FROM shift_activities
WHERE shift_id = `shifts`.`id`
) shifts()
->with("customers", "activities")
->get();
Используя расширение laravel-eloquent-case, легко добавить CASE, который представляет собой простое сравнение:

Код: Выделить всё

$open_shifts = $client->shifts()
->with('caregiver', 'activities')
->case(function (CaseBuilder $case) {
$case->when('checked_out_time', '>=', 'INTERVAL 25 HOUR')->then('Requires Attention')
->else('Complete');
}, 'VisitStatus')
->get();
Но поскольку у меня есть один, который использует счетчик (*) объединяющей таблицы, он работает не так хорошо. Это вызывает постоянные ошибки, и я не понимаю, как лучше всего использовать эту библиотеку. Какие еще варианты мне нужно использовать в Eloquent CASE/WHEN или мне следует просто использовать здесь Raw SQL?


Подробнее здесь: https://stackoverflow.com/questions/786 ... a-subquery
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»