У меня есть относительно простой набор переменных, который, кажется, работает нормально, но я верю, что именно то, как я его выводил, создает проблему.
В данный момент я использую следующее в своем контроллере:
if(empty($_GET['direction'])){
$direction = "'LIKE', '%'";
} else if ($_GET['direction'] === 'Inbound') {
$direction = "'>', 1";
} else if ($_GET['direction'] === 'Outbound'){
$direction = "'=', 1";
}
Теперь я указал dd'd $ 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],
до
['carrierOrigin','LIKE','%'],
возвращает все результаты успешно.Так есть ли другой способ форматирования вывода или отправки вывода?