У меня есть относительно простой набор переменных, который, кажется, работает нормально, но я считаю, что именно то, как я его вывожу, создает проблему.
На данный момент я использую в своем контроллере следующее:
if(empty($_GET['direction'])){
$direction = "'LIKE', '%'";
} else if ($_GET['direction'] === 'Inbound') {
$direction = "'>', 1";
} else if ($_GET['direction'] === 'Outbound'){
$direction = "'=', 1";
}
Теперь я добавил $direction постфактум, и каждый тест показывает, что он точно выбрал правильный параметр переменной с учетом значения $_GET['direction'].
Моя проблема заключается в том, как я либо вывожу его туда, либо ввожу результаты в следующем разделе:
$manifests = DB::table('carrier_manifests')
->join('customers', 'carrier_manifests.carrierOrigin', '=', 'customers.id')
->select('carrier_manifests.*', 'customers.customer_name')
->where([
['manifestNumber', 'LIKE', '%' . $manifest . '%'],
['originTerminal','LIKE','%' . $terminal . '%'],
['carrierOrigin', $direction],
])
->orderBy('dateUnloaded', 'DESC')
->whereBetween('dateUnloaded', [$startDate, $endDate])
->limit(100)
->get();
Теперь, прежде чем я продолжу, я скажу, что здесь все работает правильно и уже какое-то время, когда добавляются carrierOrigin
и $direction
, возникает проблема.
Например, если я оставлю поле direction
пустым на странице, переменная $direction будет установлена равной "'LIKE', '%'".
К сожалению, в предложении where это не отправляется хорошо или что-то в этом роде, так как не возвращает никаких результатов, но в качестве теста, если я изменю эту строку:
['carrierOrigin', $direction],
to
['carrierOrigin','LIKE','%'],
он успешно возвращает все результаты. Итак, есть ли другой способ форматирования вывода или отправки вывода?