построитель запросов laravel, если var null или загрузить все данные

У меня есть переменная, скажем, $var1

Я хочу запустить его в построителе запросов, как это

DB::table('test')->join('... `many join here` ....')->where('testA', '=', '$var1')->get();

проблема в том, что если $var = "" или null он не возвращает никаких данных

Я пытаюсь перейти по этой ссылке ответ @филла

но запутанно реализовано в построителе запросов laravel


@Обновить

введите здесь описание изображения

когда я добавляю $get в 3 ничего не отображается

и когда я проверяю консоль, это ошибка 500 (объект класса не может быть преобразован в строку)

когда я добавляю $get в 2, это может дать результат, когда $var не пусто.. но когда $var пусто, это ошибка

где я пропал?


person Neversaysblack    schedule 09.01.2016    source источник
comment
я немного смущен. Чего вы хотите добиться, если var пусто?   -  person ssuhat    schedule 09.01.2016
comment
@SSuhat, я хочу загрузить все данные ... по умолчанию, где не будет результата, потому что $var пусто   -  person Neversaysblack    schedule 09.01.2016
comment
ах, мой плохой, я не прочитал заголовок внимательно.   -  person ssuhat    schedule 09.01.2016


Ответы (1)


Вы можете попробовать так:

$var1 = "";
$q = DB::table('test')->join('... `many join here` ....');

$result = !isset($var1) ? $q : $q->where('testA', '=', $var1);
$result = $result->orderBy('column')->get();
 return $result;

Вы можете изменить empty на !isset, если хотите.

person ssuhat    schedule 09.01.2016
comment
я пытался использовать этот код.. он может загружать все данные, когда $var пусто`, но когда $var имеет значение, он все равно загружает все данные.. не конкретное значение where $var - person Neversaysblack; 09.01.2016
comment
Я обновил свой where запрос. Я по ошибке поставил строку вместо переменной. - person ssuhat; 09.01.2016
comment
хм, я получаю небольшую ошибку, реализую ее в своем скрипте... подождите, я ее обновлю.. может быть, вы можете проверить - person Neversaysblack; 09.01.2016
comment
Я обновил свой ответ. Попробуй dd($var) посмотри, что он тебе даст, когда ты его не заполнишь, а заполнишь. - person ssuhat; 09.01.2016
comment
$var не определено, когда пусто i dd() - person Neversaysblack; 09.01.2016
comment
Что, если вы наполните его значением? - person ssuhat; 09.01.2016
comment
значение var пусть говорят, что это S001 - person Neversaysblack; 09.01.2016
comment
Что вы исправляете? Могу я знать? - person ssuhat; 09.01.2016
comment
на самом деле это моя ошибка ... я неправильно указал и опечатал свою настоящую переменную $suplier с моим примером переменной $var - person Neversaysblack; 09.01.2016