Laravel по-русски

Русское сообщество разработки на PHP-фреймворке Laravel.

Ты не вошёл. Вход тут.

#1 18.03.2016 13:18:09

Max_G
Откуда: Одесса, Украина
Сообщений: 55

замена select

Использую scope c селектом в составе.
В одном месте мне нужно вызвать этот scope с другим селектом.
Можно ли из $query как-то убрать один ->select() и  заменить его на другой?

Не в сети

#2 18.03.2016 14:28:38

Artdevue
Откуда: Kiev
Сообщений: 119
Сайт

Re: замена select

всё зависит от более конкретного примера, навскидку как пример:

$q = Model::query();

if($a > $b):
    $q->select('field_1', 'field_2');
else:
    e$q->select('field_1', 'field_3');
endif;

$out = $q->get();

или

$select = ['field_1'];

if($a > $b):
    array_push($select, 'field_2');
else:
    array_push($select, 'field_3');
endif;

$out = Model::select(implode(',', $select))->get();

или

$out = Model::select(function($query) use ($a,$b)
{
	if($a > $b):
	    $query->select('field_1', 'field_2');
	else:
	    $query->select('field_1', 'field_3');
	endif;
})
->get();

If you think it’s expensive to hire a professional to do the job, wait until you hire an amateur.

Не в сети

#3 18.03.2016 17:08:15

Max_G
Откуда: Одесса, Украина
Сообщений: 55

Re: замена select

Я имел в виду не переменную, а возможность отменить предыдущий селект и задать новый. Есть такое?

Не в сети

#4 18.03.2016 18:30:30

Artdevue
Откуда: Kiev
Сообщений: 119
Сайт

Re: замена select

отменить нельзя, можно только клонировать предварительно выбранные данные без селекта.


If you think it’s expensive to hire a professional to do the job, wait until you hire an amateur.

Не в сети

#5 18.03.2016 18:37:59

Max_G
Откуда: Одесса, Украина
Сообщений: 55

Re: замена select

В общем, вижу, что сырые запросы или набор их в строку будет легче при сложных выборках.
Например, выбрать продукты одной категории (многие ко многим), имеющим параметрами цвета красный или жёлтый, размеры 42, 43, 44, фирмы Адидас или Найк.

Не в сети

Подвал раздела