Запрос и фильтрация LaravelPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Запрос и фильтрация Laravel

Сообщение Anonymous »

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

По сути, у нас есть общий запрос, который отлично выполняет именно то, что ему нужно, проблема в том, что мне нужно иметь возможность фильтровать вводимые пользователем данные в таблице ответов.

$profiles = User::with('photos', 'answers')
->where('id', '!=', $user_id)
->where('gender', $gender)
->where('location', $location)
->where('deleted_at', null)
->whereNotExists(function($query) use ($user_id)
{
$query->select(DB::raw('user_id1, user_id2'))
->from('approves')
->whereRaw("users.id = approves.user_id2 AND approves.user_id1 = '$user_id'");
})
->whereNotExists(function($query) use ($user_id)
{
$query->select(DB::raw('user_id1, user_id2'))
->from('likes')
->whereRaw("users.id = likes.user_id2 AND likes.user_id1 = '$user_id'");
})
->take(15)
->get();


При этом для изменения запроса используется несколько пользовательских входных данных, теперь пользователь также может фильтровать по множеству других критериев по ответам профиля пользователя, и это то, где я нахожусь. застрял.

Таблица ответов имеет следующий формат: id, user_id, query_id, ответ должен быть таким, чтобы можно было расширить ее в дальнейшем.
Кто-нибудь знает, как я мог бы фильтровать это с помощью различных других входных данных, например, если пользователь фильтровал вопрос по идентификатору вопроса «1» и отвечал «потрясающе». Примечательно, что существует несколько входных данных, а не только один для сравнения, и сравнивать их нужно только в том случае, если они были введены.

Любые мысли или советы приветствуются :)

Изменить:

id | user_id | question_id | answer
1 | 2 | 1 | dad
2 | 2 | 2 | lion
3 | 2 | 3 | 5


Подробнее здесь: https://stackoverflow.com/questions/254 ... -filtering
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»