These are chat archives for LaravelRUS/chat

3rd
Jul 2017
Alexander
@sancezz2006
Jul 03 2017 06:32 UTC
Добрый день коллеги! вопрос возник такой, использую конструктор запросов. И есть необходимость создать аналог фильра. По умолчанию на странице все записи, и есть выпадающие поля (город отбытия, город, прибытия, дата, ещё несколько опций..) и когда заполнена какая-то из них, вставлять в where в мой запрос. Как бы сделать правильнее чтобы не наколхозить уж совсем. Передаю данные из формы POST'ом в этот же контроллер.
KarmaBot
@KarmaBot
Jul 03 2017 06:32 UTC
@sancezz2006, привет, как настроение?
@sancezz2006 if($request->has('city')) { $query->where('city', $request->city); }
и так для каждого условия
а в конце уже $query->get()
Kirill Nesmeyanov
@SerafimArts
Jul 03 2017 06:37 UTC
тогда уж условие в цикле по массиву имён полей
ну если манипуляций с данными не надо производить то можно и так
Alexander
@sancezz2006
Jul 03 2017 06:38 UTC
Подскажите, как тут код лучше вставить. строк 30 примерно. покажу наглянее запросик.
Вот такой запрос примерно. Манипуляции с данными не нужны, просто выборка. я что-то минут 20 уже с if тыкаюсь. https://codepen.io/anon/pen/bRvPaJ?editors=0010#0
Alexander
@sancezz2006
Jul 03 2017 06:45 UTC
А то если вставляю if посреди запроса, то ошибка.
Maksim (Ellrion) Platonov
@Ellrion
Jul 03 2017 06:56 UTC
@sancezz2006 есть метод when (https://laravel.com/docs/5.4/queries#conditional-clauses)
но можно и без него просто разорви цепочку пиши if. что не получается то с ним? и странное место для публикации коды ты выбрал
Alexander
@sancezz2006
Jul 03 2017 07:14 UTC
@Ellrion ага странное(( где лучше? сейчас дали наводку в этом направлении, пробую побороть одну мелочь.
Maksim (Ellrion) Platonov
@Ellrion
Jul 03 2017 07:16 UTC
@sancezz2006 ну обычно выкладывают в https://pastebin.com/ или https://gist.github.com/ или https://paste.laravel.io/
Denys
@dfinchenko
Jul 03 2017 07:22 UTC
Доброго дня) ребята, подскажите как правильнее поступить в такой ситуации: есть роут /category/{param1?}/{param2?}/{param3?} как быть если param2 == null? param - это параметры фильтра в форме, поэтому может быть как один определен так и все
KarmaBot
@KarmaBot
Jul 03 2017 07:22 UTC
Hello, @dfinchenko!
Denys
@dfinchenko
Jul 03 2017 07:24 UTC
Сейчас это происходит таким образом - сабмитися форма с параметрами, собираются не пустые параметры и редиректится на собраный url, не учитывая пустые параметры, например зашел только param1 и param3 то редиректю на роут /category/{param1}/{param3}
Maksim (Ellrion) Platonov
@Ellrion
Jul 03 2017 07:25 UTC
@dfinchenko а надо ли тогда это пихать в роут. мб гет параметрами лучше? роут нормально работает только при убирании с конца так сказать
Denys
@dfinchenko
Jul 03 2017 07:25 UTC
@Ellrion Может и не надо, но как бы вышестоящие хотят вот видеть это именно так)
Maksim (Ellrion) Platonov
@Ellrion
Jul 03 2017 07:27 UTC
@dfinchenko так просто ты не отличишь никак у тебя нет 3его или 2ого только если еще потом их на формат как то не тестировать
Denys
@dfinchenko
Jul 03 2017 07:29 UTC
@Ellrion да, это уже учтено) прогоняется на наличие по таб. БД каждый параметр, этим самым пресекаем передачу не правильного параметра (если руками забить непонятно что) и выдаем 404
Maksim (Ellrion) Platonov
@Ellrion
Jul 03 2017 07:30 UTC
@dfinchenko не понял конечно я но ок.
@dfinchenko ну ты можешь конечно придумать что то вроде спец значени например any и тогда роуты будут /category/param1/any/param3 /category/any/param2/param3 и т.п. а в контроллере уже $param1 = 'any'===$param1 ? null : $param1
можно это даже на этап роут биндинга вынести
Denys
@dfinchenko
Jul 03 2017 07:33 UTC
@Ellrion например /category/english - тоесть нам зашел один параметр. Мы его берем и ищем в таблицах БД (в которых должен быть один из трех параметр) если находим - ок, редиректим. В противном случае - 404
Maksim (Ellrion) Platonov
@Ellrion
Jul 03 2017 07:35 UTC
@dfinchenko т.е. у тебя значения этих параметров в трех таблицах. и ты что бы понять какой это параметр ищешь его во всех трех? а у тебя не может быть одно и тоже значения в разных таблицах?
Denys
@dfinchenko
Jul 03 2017 07:35 UTC
@Ellrion к счастью - нет)
Maksim (Ellrion) Platonov
@Ellrion
Jul 03 2017 07:36 UTC
всё это странно звучит. но требования разные бывают. ок
Denys
@dfinchenko
Jul 03 2017 07:36 UTC
@Ellrion да, в трех
@Ellrion вот поэтому тут и пишу)
@Ellrion может кто-то знает паттерны по pretty url
@Ellrion потому что если поклацать по сайтам, то это требование не такая уж и дичь)
@Ellrion как вариант, думал над решением - сделать комбинацию роутов - /category/{param1} /category/{param1}/{param2} /category/{param1}/{param2}/{param3}
Maksim (Ellrion) Platonov
@Ellrion
Jul 03 2017 07:41 UTC
@dfinchenko это тоже самое что есть у тебя сейчас
вот такую коллекцию имею
пытаюсь достать ->get('active.new')
не работает - ЧЯДНТ
может ->get('active')['new']?
Не
Разобрался чуть в телеграме подсказали
Arr::get
коллекции эту хрень не распознают
А кто-нибудь знает в чем причина такого поведения?
Address::get(['id', 'name']) // Возвращает только поля id и name, как и ожидалось
Address::withCount('users')->get(['id', 'name', 'users_count']) // Возвращает все поля, включая указанные
Nikolay
@inickolay
Jul 03 2017 10:59 UTC

ребят, подскажите, добавил в package.json:

  "devDependencies": {
    ...
    "gulp": "^3.9.1",
    "gulp-uglify": "^3.0.0",
    "laravel-elixir": "^6.0.0"
  }

выполняю npm i, и в итоге пишет

up to date in 19.235s

т.е. ничего не добавляет, что я делаю не так? :(

Maksim (Ellrion) Platonov
@Ellrion
Jul 03 2017 11:00 UTC
Nikolay
@inickolay
Jul 03 2017 11:01 UTC
@jhaoda это не связано с laravel?
Maksim (Ellrion) Platonov
@Ellrion
Jul 03 2017 11:01 UTC
@Virp в первом случае какраз еще нет ничего columns, а во втором из-за withCount там уже есть
JhaoDa
@jhaoda
Jul 03 2017 11:01 UTC
@inickolay нет. Какое отношение npm имеет к ларавел?
@Ellrion а как лучше тогда отфильтровать получаемы поля в данном случае?
Maksim (Ellrion) Platonov
@Ellrion
Jul 03 2017 11:03 UTC
@Virp Address::select(['id', 'name', 'users_count'])->withCount('users')->get()
@Ellrion select('users_count') в данном случае не работает, поскольку нет в таблице такого поля, я пробовал
Maksim (Ellrion) Platonov
@Ellrion
Jul 03 2017 11:05 UTC
@Virp а ну да, его не указывай
@Ellrion Address::select(['id', 'name'])->withCount('users')->get()
@Ellrion точно, спасибо, что то я затупил с этим =)
NoViKoFF
@AndrewNovikof
Jul 03 2017 13:12 UTC
Ребят, кто пользуется laravel/passport из коробки?
Что это за жесть?
JhaoDa
@jhaoda
Jul 03 2017 13:13 UTC
@AndrewNovikof что именно?
NoViKoFF
@AndrewNovikof
Jul 03 2017 13:14 UTC
Ключи лежат в папке storage
JhaoDa
@jhaoda
Jul 03 2017 13:14 UTC
@AndrewNovikof ссылка есть, зачем ты это сюда вытащил вместо того, что бы ответить на вопрос?
NoViKoFF
@AndrewNovikof
Jul 03 2017 13:14 UTC
всегда эти файлы были с правами 644
сейчас если он видит права 644, пытается поменять на 600
Но ему разумеется нельзя это делать
А если сам ставишь 600, он не проходит is_readable на 43 строке
Вопрос, это я дурак? Или лыжи не едут?
Спасибо парню за коммит
Perevozchykov Kostiantyn
@skvoz
Jul 03 2017 13:51 UTC
всем привет , может кто подсказать как грамотно организовать RBAC в ларавели , юзаю это https://github.com/Zizaco/entrust , но тут не понятно как из middleware вызвать модель для чека овнера модели
JhaoDa
@jhaoda
Jul 03 2017 14:22 UTC
@skvoz ты уверен,что тебе нужен именно RBAC и что тебе не хватает возможностей политик?
Perevozchykov Kostiantyn
@skvoz
Jul 03 2017 14:24 UTC
@jhaoda спасибо , читаю как раз про политики
KarmaBot
@KarmaBot
Jul 03 2017 14:24 UTC
Спасибо (+1) для @jhaoda принято! Текущая карма +1555.