Создание массива в контроллере и передача во внешнюю функцию - PullRequest
0 голосов
/ 18 мая 2018

Я пытаюсь взять существующий / рабочий код из контроллера laravel и создать массив клиентов из существующей функции запроса в этом контроллере.

Вот часть кода контроллера, которая работает:

КОНТРОЛЬ'priority', который используется в качестве класса css для выделения.

Это прекрасно работает.

Теперь я хочу взять любого затронутого клиента из этого запроса ($ d-> custNum) с помощьюстатус 'priority', поместите его в массив и затем передайте массив моей функции findActive в моем файле activeCust.php

activeCust.php

public function findActive($custNum){

    $sql ="
        SELECT c.customer
          FROM customers C
        WHERE c.customer NOT IN ($custNum)
    ";
}

По существу, после этого кодаБлок в контроллере, я хочу создать массив всех возвращенных номеров клиентов (то есть статус «приоритет») и передать этот массив в функцию, чтобы я мог сказать «Запустить этот findACtive запрос для любого клиента, который не находится в этом массиве ".

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

Как создать массив из возвращаемых значений в блоке кода контроллера и использовать массив длямое 'NOT IN' в запросе функции в activeCust.php?

1 Ответ

0 голосов
/ 18 мая 2018

Поскольку ваш вопрос неясен, у меня есть предположение.Если это не правильно, я удалю ответ, чтобы вы могли реструктурировать свой вопрос:

  • В этой логике, то есть в выражении if, вы хотите заполнить массив, который будет содержать идентификаторызапись $d (лучше, если вы дадите ей более пояснительное имя переменной):

Если мое предположение верно, вы можете инициализировать массив, а затем заполнить его другими идентификаторами в блоке условий, как это:

$ids = [];

if($d->nextDate <= $now && $d->createdAt > $deadline && $d->status != 'exempt'){
    $d->status = 'priority';
    $ids[] = $d->custNum
}
....
SomeClass::findActive($ids); //calls the findActive()

Наблюдение за тем, почему вы используете Query String, когда вы можете использовать Eloquent или даже QueryBuilders 'whereNotIn('something', [1,2,3]);, например?

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