Size: a a a

2020 August 18

AY

Artyom Yun in Laravel Pro
Ребята, подскажите, как правильно реализовать фильтрацию в поиске на сайте?
источник

A

Andrey in Laravel Pro
Фильтрацию в поиске? Что ты собрался фильтровать? Что ты имеешь в виду под фильтрацией поиска? Или ты хочешь просто поиск? 😀 Чёт я не вкурил твой вопрос
источник

A

Andrey in Laravel Pro
А вообще просто правильно делай и будет правильно, инфа сотка
источник

AY

Artyom Yun in Laravel Pro
Обычный фильтр при поиске
источник

AY

Artyom Yun in Laravel Pro
Andrey
А вообще просто правильно делай и будет правильно, инфа сотка
Тип, чекбоксы в гет отправлять и на их основе SQL запрос составлять?
источник

A

Arthur in Laravel Pro
Сделай класс или метод, который будет принимать на входе request и builder, а на выходе отдавать builder (если это необходимо)
внутри строй запрос как хочешь исходя из чекбоксов, инпутов и прочей хрени.

Идеально, конечно отказаться от реквестов и принимать в классе просто параметры поиска и передавать их в чистом виде, а не классом request. Но, тут уж, кто, как для себя решит
источник

A

Arthur in Laravel Pro
Можно из говна и палок соорудить нечто такое. Но, имхо мне не нравится такой код. И я от него давно ушёл
источник

U

Us.@hmad in Laravel Pro
Arthur
Можно из говна и палок соорудить нечто такое. Но, имхо мне не нравится такой код. И я от него давно ушёл
Мои глаза
источник

U

Us.@hmad in Laravel Pro
Удалите нахрен это
источник

A

Arthur in Laravel Pro
Us.@hmad
Удалите нахрен это
Рефакторю по возможности. Но всё сразу не получается 😊
Я бы сюда класс закинул, но не могу 😊 низя
источник

A

Arthur in Laravel Pro
А это уже рудимент и никаких ограничений на него нет
источник

U

Us.@hmad in Laravel Pro
сделайте Private переменную фильтр который будет содержать ключь значение
типа:
private $filter = [
'renovation' => [
       'column' => 'renovation',
      'oparator' => '='
]];

потом через форич проганите фильтр где будет:
foreach($this->filter as $key => $filter){
     if(isset($request[$key])){ // или $request->$key
        $items = $items->where($filter['column'], $filter['operator'], $request->$key)
}
источник

U

Us.@hmad in Laravel Pro
Us.@hmad
сделайте Private переменную фильтр который будет содержать ключь значение
типа:
private $filter = [
'renovation' => [
       'column' => 'renovation',
      'oparator' => '='
]];

потом через форич проганите фильтр где будет:
foreach($this->filter as $key => $filter){
     if(isset($request[$key])){ // или $request->$key
        $items = $items->where($filter['column'], $filter['operator'], $request->$key)
}
Это в модели лучше делать
источник

U

Us.@hmad in Laravel Pro
и static уберите
источник

AB

Artem Bulavin in Laravel Pro
Здравствуйте! Подскажите, пожалуйста, как можно сгенерировать xml в шаблоне blade и скачать его в виде файла xml?
источник

U

Us.@hmad in Laravel Pro
Artem Bulavin
Здравствуйте! Подскажите, пожалуйста, как можно сгенерировать xml в шаблоне blade и скачать его в виде файла xml?
источник

A

Arthur in Laravel Pro
Us.@hmad
сделайте Private переменную фильтр который будет содержать ключь значение
типа:
private $filter = [
'renovation' => [
       'column' => 'renovation',
      'oparator' => '='
]];

потом через форич проганите фильтр где будет:
foreach($this->filter as $key => $filter){
     if(isset($request[$key])){ // или $request->$key
        $items = $items->where($filter['column'], $filter['operator'], $request->$key)
}
Я против того, чтобы засорять модель этим.
Тем более что поля такого фильтра с идентичными правилами применяются не только на одной таблице и свойства некоторых полей зависят друг от друга. То есть, тогда нужно запихивать closure функции.
Я вынес это в отдельный класс, раскидал поля по отдельным методам и строю фильтр исходя из входящих параметров. Обслуживать и читать легче.
источник

A

Arthur in Laravel Pro
Us.@hmad
и static уберите
Ещё раз. Это рудимент
источник

U

Us.@hmad in Laravel Pro
Arthur
Я против того, чтобы засорять модель этим.
Тем более что поля такого фильтра с идентичными правилами применяются не только на одной таблице и свойства некоторых полей зависят друг от друга. То есть, тогда нужно запихивать closure функции.
Я вынес это в отдельный класс, раскидал поля по отдельным методам и строю фильтр исходя из входящих параметров. Обслуживать и читать легче.
Нуу для начала это не мусор а параметры которые отведены модели если нужны отдельно closure функции можно их отдельно вывести и не if ать , Отведите на отдельный трэйт тогда если вам не нравится
источник

A

Arthur in Laravel Pro
Us.@hmad
Нуу для начала это не мусор а параметры которые отведены модели если нужны отдельно closure функции можно их отдельно вывести и не if ать , Отведите на отдельный трэйт тогда если вам не нравится
😊 почему тогда просто не юзать скоуп?
источник