Получить количество ненулевых элементов в laravel - PullRequest
0 голосов
/ 21 апреля 2020

Я хочу знать, как получить количество ненулевых элементов подряд. Например, если кто-то ответит на вопрос с 1 по 5 и оставит остальные 5, ответ должен быть 5. Могу ли я узнать, как это сделать в строке?

Это мой запрос

$qs = Question::where('user_id', Auth::user()->id)->first();

This is the output Я хочу выйти из этого нулевого столбца. Кто-нибудь может мне помочь с этим?

Ответы [ 3 ]

0 голосов
/ 21 апреля 2020

Я не знаю, есть ли встроенная функция или нет. но я хочу написать хороший вспомогательный код:

$answer_count=[];
foreach ($rows as $row){

    $count=0;

    foreach ($row as $key => $value){
        if($value!==null && startWith($key, 'answer')) {
             $count+=1;
        }   
    }

    $answer_count[] = ['id' => $row['id'],
            'count' => $count,
        ];
}
0 голосов
/ 21 апреля 2020

Вы должны использовать функцию getAttributes (), чтобы получить атрибуты вашей модели и использовать фильтр для их фильтрации:

$nullAttributesCount=collect($qs->getAttributes()) ->filter(function ($value, $key)
            {
            return $value===null;}
            )->count();
0 голосов
/ 21 апреля 2020

Попробуйте использовать массив с любым циклическим механизмом рядом с переменной для отслеживания количества, например, пока l oop.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...