These are chat archives for LaravelRUS/chat

23rd
Apr 2015
LaravelButler

Приветствуем Вас, @erhathaway, в нашем дружном чате
В чате запрещена: реклама, спам, нецензурная лексика. Чат не место для оскорблений и выяснения отношений между участниками. За нарушение – Бан!

Русскоязычное сообщество Laravel
Самая свежая документация по Laravel 5
Документация по Laravel 4.2
Официальный сайт Laravel
Группа Вконтакте
А так же:
G+, Facebook, Twitter, GitHub

⇒ Перед тем как написать сообщение, пожалуйста, ознакомьтесь с разметкой Markdown ( Ctrl+Shift+M (Windows) Ctrl+Alt+M (Linux) Ctrl+Cmd+M (Mac) )

LaravelButler

Приветствуем Вас, @paul-cheung, в нашем дружном чате
В чате запрещена: реклама, спам, нецензурная лексика. Чат не место для оскорблений и выяснения отношений между участниками. За нарушение – Бан!

Русскоязычное сообщество Laravel
Самая свежая документация по Laravel 5
Документация по Laravel 4.2
Официальный сайт Laravel
Группа Вконтакте
А так же:
G+, Facebook, Twitter, GitHub

⇒ Перед тем как написать сообщение, пожалуйста, ознакомьтесь с разметкой Markdown ( Ctrl+Shift+M (Windows) Ctrl+Alt+M (Linux) Ctrl+Cmd+M (Mac) )

bo0blik
@bo0blik
Apr 23 2015 01:49
Ребята есть кто живой? Что такое этот forge?
Хочу по быстренькому сервачек развернуть под laravel что-бы потестить, че купить?
opuscoins
@opuscoins
Apr 23 2015 02:08
есть
Форж - это такая надстройка над впс, которая позволяет быстро запустить лару
есть отличная серия видео, где все показано на примере Digital Ocean https://laracasts.com/series/server-management-with-forge/episodes/1
на DO кстати можно ввести купон и получить 10 баксов халявы, что в сумме с самым дешевым пакетом 5$/мес дает два месяца теста
сам форж стоит 10$/мес
bo0blik
@bo0blik
Apr 23 2015 02:12
@opuscoins то есть фордж не нужен?
opuscoins
@opuscoins
Apr 23 2015 02:14
Форж нужен если тебе нужен из коробки настроенный автодеплой + планировщик задач + HHVM + по мелочи
если сам все это настроил - то форж не нужен
bo0blik
@bo0blik
Apr 23 2015 02:15
Да это все как колдовство для меня звучит. По идее на тот же DO не сложно будет развернуть все?
opuscoins
@opuscoins
Apr 23 2015 02:18
такой вопрос, а зачем чтобы потестить, покупать сервер? на локали у себя разверни и тести сколько влезет
bo0blik
@bo0blik
Apr 23 2015 02:29
Да все на авторизации в социалочках все завязано, с локалки не потестишь. Вчера день убил на это дело, и забыл совсем по этот момент.
Чет не хотят в DO мою карту вообще принимать. Может есть варианты еще какие максимально быстро L5 развернуть и что-бы поддомен дали какой-нибудь.
Нашел какой-то openshift, норм контора?
opuscoins
@opuscoins
Apr 23 2015 02:36
The Open Hybrid Cloud Application Platform by Red Hat - думаю норм пацаны :)
вроде не первый год на рынке
bo0blik
@bo0blik
Apr 23 2015 02:43
Да они вообще улетные ребята, развернул уже за три клика все, а они даже денег не спросили. Не знаю что с ними не так.
JhaoDa
@jhaoda
Apr 23 2015 03:22
@bo0blik я прекрасно тестирую авторизацию через социалки на локальной машине
bo0blik
@bo0blik
Apr 23 2015 03:29
@jhaoda чет мне кажется не все получится затестить, да и я хочу через ulogin сделать, а там нужно как минимум домен подтвердить.
JhaoDa
@jhaoda
Apr 23 2015 03:30
@bo0blik не знаю на счет всего, но ВК, ОК, Мыло и Яндекс работают без проблем
LaravelButler

Приветствуем Вас, @ufocoder, в нашем дружном чате
В чате запрещена: реклама, спам, нецензурная лексика. Чат не место для оскорблений и выяснения отношений между участниками. За нарушение – Бан!

Русскоязычное сообщество Laravel
Самая свежая документация по Laravel 5
Документация по Laravel 4.2
Официальный сайт Laravel
Группа Вконтакте
А так же:
G+, Facebook, Twitter, GitHub

⇒ Перед тем как написать сообщение, пожалуйста, ознакомьтесь с разметкой Markdown ( Ctrl+Shift+M (Windows) Ctrl+Alt+M (Linux) Ctrl+Cmd+M (Mac) )

Maxim
@Big-Shark
Apr 23 2015 03:49
@bo0blik вк точно работает, вроде даже гугл заставляли работать, у логин фиг знает, я его не использую, нафиг мне еще одна прослойка
JhaoDa
@jhaoda
Apr 23 2015 03:51
При чем у меня ВК, ОК и Мыло работают с адресом site.dev, одному Яндексу он не нравится, пришлось писать site.com
bo0blik
@bo0blik
Apr 23 2015 04:03
Ребята вот меня напрягает что пока проект в IDE PHPstorm загружаешь, нельзя с другим проектом работать. Может я не понимаю что-то, но что за колхоз, епта?
:)
Может пофиксить можно такое поведение, я не знаю.
Но отмазка нормальная получается, у меня проект грузится, работать не могу.
JhaoDa
@jhaoda
Apr 23 2015 04:12
@bo0blik што? Всё нормально работает
Вот прямо щас индексируется второй проект, а я работаю в первом
bo0blik
@bo0blik
Apr 23 2015 04:15
@jhaoda о_0
Ну у меня плашка с загрузкой появляется и нельзя ничего делать во всех трех открытых проектах. И плашку не свернуть никак эту. Только отменить загрузку.
@jhaoda именно загрузка с удаленного сервера
JhaoDa
@jhaoda
Apr 23 2015 04:18
@bo0blik а, ну если плашка, то может быть. Я десяток проектов перебрал — плашка пропадает максимум через 3 секунды
@bo0blik да ты знаешь толк...
bo0blik
@bo0blik
Apr 23 2015 04:18
Ну я по старинке все, как отцы основатели завещали :)
Ну я уже третью кружку кофе любуюсь этой плашкой.
Maxim
@Big-Shark
Apr 23 2015 04:25
@bo0blik плашка дердится секунды 3, не больше, ты на чем работаеш? на ардуино?
bo0blik
@bo0blik
Apr 23 2015 04:27
@Big-Shark на imac, ну я с ssh загружаю laravel с openshift сейчас. Да, это меня возбуждает.
Maxim
@Big-Shark
Apr 23 2015 04:28
омг
bo0blik
@bo0blik
Apr 23 2015 04:48
Так долго грузит. Уже не знаю чем заняться, как думаете нормальное имя для кота Чесночок?
Maxim
@Big-Shark
Apr 23 2015 04:51
Да
LaravelButler

Приветствуем Вас, @ponyfleisch, в нашем дружном чате
В чате запрещена: реклама, спам, нецензурная лексика. Чат не место для оскорблений и выяснения отношений между участниками. За нарушение – Бан!

Русскоязычное сообщество Laravel
Самая свежая документация по Laravel 5
Документация по Laravel 4.2
Официальный сайт Laravel
Группа Вконтакте
А так же:
G+, Facebook, Twitter, GitHub

⇒ Перед тем как написать сообщение, пожалуйста, ознакомьтесь с разметкой Markdown ( Ctrl+Shift+M (Windows) Ctrl+Alt+M (Linux) Ctrl+Cmd+M (Mac) )

Роман Сохарев
@greabock
Apr 23 2015 07:00
Уж не знаю почему, но был у соседа черный кот, и его звали "Автосервис"
Nikita Galkin
@galkin
Apr 23 2015 07:01
Всем привет! Вопрос по обработке ошибок в L5. Можно ли сделать алтернативу ExceptionHandler?
bo0blik
@bo0blik
Apr 23 2015 07:02
@greabock Ну это уже как-то несерьезно, вот Чесночок это сразу понятно что кот добрый и честный. А автосервис понятно только, что хозяин того.
Maxim
@Big-Shark
Apr 23 2015 07:03
@galk-in чего?
Роман Сохарев
@greabock
Apr 23 2015 07:04
@bo0blik совсем нет фантазии =(
bo0blik
@bo0blik
Apr 23 2015 07:05
@greabock соседа просто зовут Василий Гастроном
Nikita Galkin
@galkin
Apr 23 2015 07:07
@Big-Shark у нас в L5 есть обработчик ошибок app/Exceptions/Handlers.php, который наследует Exceptions. В нем у меня куча конструкций вида if ($e instanceof ModelNotFoundException) { часть от пакетов часть от приложения. Как это сделать нормально?
Maxim
@Big-Shark
Apr 23 2015 07:08
@galk-in даже хз
LaravelButler

Приветствуем Вас, @Huongnx, в нашем дружном чате
В чате запрещена: реклама, спам, нецензурная лексика. Чат не место для оскорблений и выяснения отношений между участниками. За нарушение – Бан!

Русскоязычное сообщество Laravel
Самая свежая документация по Laravel 5
Документация по Laravel 4.2
Официальный сайт Laravel
Группа Вконтакте
А так же:
G+, Facebook, Twitter, GitHub

⇒ Перед тем как написать сообщение, пожалуйста, ознакомьтесь с разметкой Markdown ( Ctrl+Shift+M (Windows) Ctrl+Alt+M (Linux) Ctrl+Cmd+M (Mac) )

Dmitry
@DmitryChere
Apr 23 2015 07:42
всем привет
не чистится кеш шаблонов (storage/views)
приходится после каждого редактирования шаблона, папку вручную очищать
причем проблема на двух разных серверах у двух разных людей
что это может быть? с правами норм все
Roman
@TeroBlaZe
Apr 23 2015 07:44
@likeapimp здравствуй, права 777 на storage?
Dmitry
@DmitryChere
Apr 23 2015 07:45
@TeroBlaZe да
Dmitry
@DmitryChere
Apr 23 2015 07:46
@TeroBlaZe неа, заказчик не хо обновляться с 4.2
Roman
@TeroBlaZe
Apr 23 2015 07:47
а тогда не тот случай
хм может с настройками кеша что-то не то
Dmitry
@DmitryChere
Apr 23 2015 07:49
@TeroBlaZe просто странно что на 2х разных серверах одна и та же проблема
Roman
@TeroBlaZe
Apr 23 2015 07:49
ну у меня то нет такой проблемы, видимо ваши мысли в чем-то сошлись))
Dmitry
@DmitryChere
Apr 23 2015 07:50
@TeroBlaZe в смысле?
локально у меня тоже не было
Roman
@TeroBlaZe
Apr 23 2015 07:50
ну случайно сделали одинаковые настройки ПО
я не про локально говорю
@likeapimp а почему папку вручную чистить приходится, что php artisan cache:clear не помогает?
Dmitry
@DmitryChere
Apr 23 2015 07:52
@TeroBlaZe нет
slider23
@slider23
Apr 23 2015 07:53
с датой проверьте разное
раз фреймворк не чистит, то он считает, что измененные вьюхи старее чем сгенеренный кэш
как вьюхи на сервер попадают ?
Roman
@TeroBlaZe
Apr 23 2015 07:54
кстати, вполне возможно, вот http://stackoverflow.com/a/20688419
Dmitry
@DmitryChere
Apr 23 2015 08:00
@slider23 спасибо! увеличил на компе время на час вперед и норм стало,потому что на сервере у файлов время редактирования всегда на час больше писало, чем мое текущее время
Roman
@TeroBlaZe
Apr 23 2015 08:15

блин, вот снова меня посетила мысль всё же стоит ли делать Route::get('{slug}', 'PagesController@getBySlug') и хранить страницы в бд???

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

Dmitry
@DmitryChere
Apr 23 2015 08:17
@TeroBlaZe смотря для каких целец
Roman
@TeroBlaZe
Apr 23 2015 08:19
@likeapimp универсальных. Загвоздка как раз в том, что я никак не могу для себя решить что мне использовать
@likeapimp вот допустим, была у меня на сайте страница about, хранилась она в бд и доступ был по slug роуту, возникла необходимость создать к этой страницы разделы и каждый чтобы был на своей странице, можно конечно еще тупо создать пару страниц в бд и разместить на них ссылки, а что если нужно сделать урл вида /about/products и /about/company
Dmitry
@DmitryChere
Apr 23 2015 08:26
@TeroBlaZe а если для таких отдельный роут создать? или нужно только 1
Роман Сохарев
@greabock
Apr 23 2015 08:28

@TeroBlaZe

/about/products и /about/company

ты меня прости, но это семантически неверно

Roman
@TeroBlaZe
Apr 23 2015 08:29
@likeapimp с одним тут явно не получится, а если хардкодить роуты для подстраниц, то теряется смысл хранения страниц в бд
@greabock а что же тогда верно?
Роман Сохарев
@greabock
Apr 23 2015 08:30
/products/about и /company/about
Dmitry
@DmitryChere
Apr 23 2015 08:32
@greabock он для примера написал, имел ввиду адреса подстраниц
Roman
@TeroBlaZe
Apr 23 2015 08:32
эм, ну в принципе да, просто пример не совсем удачный попался, скажем пусть не about, а что-то еще
Роман Сохарев
@greabock
Apr 23 2015 08:34
если "что-то еще", то это уже отдельный домен (я сейчас об областях ответственности, а не веб-доменах)
Roman
@TeroBlaZe
Apr 23 2015 08:34
допустим вот http://www.apple.com/jobs и там ниже подстраницы Corporate, Retail, Students
Роман Сохарев
@greabock
Apr 23 2015 08:35
вот именно
Roman
@TeroBlaZe
Apr 23 2015 08:35
что?
Роман Сохарев
@greabock
Apr 23 2015 08:35
это домен 'jobs' и подчиненные ему страницы
Roman
@TeroBlaZe
Apr 23 2015 08:36
а что ты скажешь об этом? http://www.asus.com/ru/About_ASUS/Origin_of_the_Name_ASUS
Роман Сохарев
@greabock
Apr 23 2015 08:38
@TeroBlaZe я скажу, что это статьи лежащие в категории about_asus
в любом случае, если отойти от семантики
то "унислаг" тоже реализуем
Roman
@TeroBlaZe
Apr 23 2015 08:42
да ясно, что всё реализуемо, только до этого нужно еще додуматься и понять как сделать
Роман Сохарев
@greabock
Apr 23 2015 08:43
ну вот смотри, первое, что в голову пришло
Route :: get ( '(:all)?' [...] )
простите, у меня тильда отказала...
NelinD
@NelinD
Apr 23 2015 08:44
@greabock такую вещь сломал
Roman
@TeroBlaZe
Apr 23 2015 08:46
` я просто оставлю это здесь :)
Роман Сохарев
@greabock
Apr 23 2015 08:46
спасибо
В общем, суть в том, что можно определить унислаг после всех роутов, и не важно какое количество там сегментов.
ты просто прописываешь слаг, как будто он дочерний (хотя на самом деле они все в одной куче лежат)
Dmitry
@DmitryChere
Apr 23 2015 08:48
ребята, можно ли упростить данный код?
    public function getAll($stage) {

            $query = DB::table($this->table)
                                        ->select('id', 'ip_address', 'suspended', 'banned', 'user_id')
                    ->groupBy('ip_address')
                    ->having(DB::raw('count(user_id)'), '>', 1)
                    ->paginate(20);

            switch($stage) {
            case 1:    
                foreach($query as $item) {
                    if(!empty($item->ip_address) AND $this->checkIp($item->ip_address)) {
                        $result[] = array(
                            'id' => $item->id,
                            'ip_address' => $item->ip_address,
                            'suspended' => $item->suspended,
                            'banned' => $item->banned,
                            'users' => $this->getAccByIp($item->ip_address)
                        );
                    }
                }

                return $result;
                break;
            case 2:    
                return $query->links();
                break;
            }

        }
Роман Сохарев
@greabock
Apr 23 2015 08:48
к слову сказать, файловая структура в линухах таким образом организована
Roman
@TeroBlaZe
Apr 23 2015 08:48
@greabock да это я понял
@greabock держи ~ )))
Роман Сохарев
@greabock
Apr 23 2015 08:49
@TeroBlaZe не, эта у меня работает ))
Roman
@TeroBlaZe
Apr 23 2015 08:49
а то я уже думал ключ от дома потерял))
Роман Сохарев
@greabock
Apr 23 2015 08:51
да guake перехватывает, консолька открывается
Roman
@TeroBlaZe
Apr 23 2015 08:52
@likeapimp это смотря в каком плане упростить))))
Dmitry
@DmitryChere
Apr 23 2015 08:52
@TeroBlaZe ну вообще на сколько правильно он написан
Roman
@TeroBlaZe
Apr 23 2015 08:54
@likeapimp ну например брейки к одному месту там не сдались после ретурнов))
Dmitry
@DmitryChere
Apr 23 2015 08:55
@TeroBlaZe спасибо
Roman
@TeroBlaZe
Apr 23 2015 08:56
@likeapimp и мне не совсем понятно куда это там луп складывает данные? Что в итоге будет на выходе?
Роман Сохарев
@greabock
Apr 23 2015 08:56

и снова немного семантики
@likeapimp

 $query = DB::table($this->table)
                                        ->select('id', 'ip_address', 'suspended', 'banned', 'user_id')
                    ->groupBy('ip_address')
                    ->having(DB::raw('count(user_id)'), '>', 1)
                    ->paginate(20);

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

к делу не относится, но все же
Alexander Popov
@ruelephant
Apr 23 2015 08:57
народ как так может быть
Dmitry
@DmitryChere
Apr 23 2015 08:57
@greabock ты имеешь ввиду зачем дальше $query через foreach перебирается?
Alexander Popov
@ruelephant
Apr 23 2015 08:57
в гите изменения в истории есть
а в проекте их нет
при этом это всего 3-ти сверху коммит, я глянул руками они не перетерались
NelinD
@NelinD
Apr 23 2015 08:58
@ruelephant тут первый вопрос они в одном месте?
Alexander Popov
@ruelephant
Apr 23 2015 08:58
в двух нескольких местах
Роман Сохарев
@greabock
Apr 23 2015 08:58
@likeapimp я имею ввиду, что семантически - это уже не запрос, а результат.
NelinD
@NelinD
Apr 23 2015 08:58
@ruelephant синкнуты?
Alexander Popov
@ruelephant
Apr 23 2015 08:58
всмысле?
NelinD
@NelinD
Apr 23 2015 08:59
@NelinD там где ты смотришь через гит - сделан пуш
там где проект соответственный пулл
Роман Сохарев
@greabock
Apr 23 2015 08:59
@likeapimp это как request и response перепутать.
@likeapimp в общем, переменные нужно правильно называть
Dmitry
@DmitryChere
Apr 23 2015 09:01
@greabock я понял
ну эт по привычке, обычно использую query для получения чего-либо и за ним result
Роман Сохарев
@greabock
Apr 23 2015 09:06
@likeapimp опиши словами, что ты делаешь в этом коде
Roman
@TeroBlaZe
Apr 23 2015 09:07
да там case 1 возвращает бублик с дыркой в любом случае
Dmitry
@DmitryChere
Apr 23 2015 09:11

@TeroBlaZe он массив возвращает с данными

@greabock получаю данные из таблицы. сначала использовал чистый sql запрос, но чтобы пагинацию быстрее сделать переписал под билдер.
перебираю их в массив result, потому что в ключ users подгружаю еще один массив из другой таблицы.

Роман Сохарев
@greabock
Apr 23 2015 09:12
да меня не интересует, как ты это делаешь )) Я спрашиваю, что ты делаешь ))
Dmitry
@DmitryChere
Apr 23 2015 09:12
в смысле что?
что на выходе?
@greabock
Роман Сохарев
@greabock
Apr 23 2015 09:13
ну да, что ты хочешь получить в результате
Roman
@TeroBlaZe
Apr 23 2015 09:13
@likeapimp ничего он не возвращает, у тебя массив каждую итерацию перезаписывается, а возвращаешь ты вообще несуществующую переменную
Dmitry
@DmitryChere
Apr 23 2015 09:14
@greabock на выходе я получаю http://clip2net.com/s/3gBb3OP
Роман Сохарев
@greabock
Apr 23 2015 09:14
@TeroBlaZe не перезаписывается
Roman
@TeroBlaZe
Apr 23 2015 09:14
как это!?
Dmitry
@DmitryChere
Apr 23 2015 09:14
@TeroBlaZe что как:
?
Роман Сохарев
@greabock
Apr 23 2015 09:15
$result[] = array(...);
Roman
@TeroBlaZe
Apr 23 2015 09:15
да ну не может быть
Dmitry
@DmitryChere
Apr 23 2015 09:15
@TeroBlaZe если бы array() не было то он бы перезаписывался
а так многомерный массив получается
Роман Сохарев
@greabock
Apr 23 2015 09:16
вот если бы было
$result = array(...);
тогда бы перезаписывался
Dmitry
@DmitryChere
Apr 23 2015 09:16
ну или так как @greabock написал
Роман Сохарев
@greabock
Apr 23 2015 09:17
$result[] = array(...);
тоже самое, что
array_push($result, array(...));
@likeapimp окей, допустим. А зачем два кейса?
Dmitry
@DmitryChere
Apr 23 2015 09:20
@greabock case 2 возвращает пагинацию, потому что с $results так и не смог ее получить как с $query
($result->links)
Roman
@TeroBlaZe
Apr 23 2015 09:22
у меня сейчас произошел полный вынос мозга, это просто нечто, переменная живет после цикла :crying_cat_face:
Dmitry
@DmitryChere
Apr 23 2015 09:23
@TeroBlaZe а что здесь такого?
Roman
@TeroBlaZe
Apr 23 2015 09:23
приходи в джаву, покажем
Роман Сохарев
@greabock
Apr 23 2015 09:24
перменная выжила за скоупом, это же ужас ))
Roman
@TeroBlaZe
Apr 23 2015 09:24
это ад
Dmitry
@DmitryChere
Apr 23 2015 09:24
@TeroBlaZe как правильно сделать в моем коде?
Roman
@TeroBlaZe
Apr 23 2015 09:25
я уже даже не знаю :D
кажется там всё и так правильно, если работает)))
Роман Сохарев
@greabock
Apr 23 2015 09:25
хотя тот факт, что она не объявлена за скоупом лупа и ошибку не выдает... это странно
Roman
@TeroBlaZe
Apr 23 2015 09:26
да, вот если $result = [] в начале объявить перед циклом, то тогда мозги многих людей будут впорядке
Dmitry
@DmitryChere
Apr 23 2015 09:26
@TeroBlaZe @greabock а что странного здесь?
в opencart например большинство функций таким образом написано.. и работает же
Roman
@TeroBlaZe
Apr 23 2015 09:26
@greabock пишет! Ide должна писать
меня больше беспокоет почему оно выполняется
Роман Сохарев
@greabock
Apr 23 2015 09:28
@likeapimp просто не вспоминай про опенкарт
его писал больной человек
Dmitry
@DmitryChere
Apr 23 2015 09:29
@greabock prestasho
тоже там такое есть
а почему об opencart такого мнения? я считал его всегда вполне хорошим движком
Роман Сохарев
@greabock
Apr 23 2015 09:30
когда вспоминаю контроллеры опенкарта, у меня пятая точка подгорает
Dmitry
@DmitryChere
Apr 23 2015 09:30
@greabock а что в них плохого?
Роман Сохарев
@greabock
Apr 23 2015 09:30
эм...
Dmitry
@DmitryChere
Apr 23 2015 09:31
мы когда-то на курсах писала cms на кохане, так препод контроллеры примерно также юзал
*писали
Роман Сохарев
@greabock
Apr 23 2015 09:31
@likeapimp мне жаль его , и вас ))
Dmitry
@DmitryChere
Apr 23 2015 09:31
@greabock поведай тогда что не так в таком подходе)
LaravelButler

Приветствуем Вас, @huyhoang9212, в нашем дружном чате
В чате запрещена: реклама, спам, нецензурная лексика. Чат не место для оскорблений и выяснения отношений между участниками. За нарушение – Бан!

Русскоязычное сообщество Laravel
Самая свежая документация по Laravel 5
Документация по Laravel 4.2
Официальный сайт Laravel
Группа Вконтакте
А так же:
G+, Facebook, Twitter, GitHub

⇒ Перед тем как написать сообщение, пожалуйста, ознакомьтесь с разметкой Markdown ( Ctrl+Shift+M (Windows) Ctrl+Alt+M (Linux) Ctrl+Cmd+M (Mac) )

Роман Сохарев
@greabock
Apr 23 2015 10:26
@likeapimp ну ты серьезно сейчас? 950 строк контроллер это нормально? =))
При том, что я беру и тут же его переписываю на 350.
Или модель данных, которая на странице списка товаров в категории генерирует по 3 дополнительных запроса в бд для каждого товара. И если ты по каким-то причинам решил вывести 50 позиций на одной странице, то учись умножать на три.
в общем... это тихий ужас.
Роман Сохарев
@greabock
Apr 23 2015 10:31
Это не говоря уж об используемом там костылище по прозвищу vqmod.
Roman
@TeroBlaZe
Apr 23 2015 10:40
@greabock смотри жесть какая вложенность http://moskva.beeline.ru/about/partners/tender/betender/daln-vostok/ мне вот всё интересно как это управляется, неужели всё руками прописано и файлики с текстами лежат
ну это грубо говоря))
Роман Сохарев
@greabock
Apr 23 2015 10:58
@TeroBlaZe я думаю, что это разрулено какими-то замыкающимися множествами (древовидные структуры). Ну а так, как это .net, я почти уверен, что это nested sets + звезда
bassx1
@bassx1
Apr 23 2015 11:00
комрадс подскажите как решить проблемку:
при update User-a меняет пароль постоянно, как сделать что бы не менялся пасс, если я его не трогаю?
Роман Сохарев
@greabock
Apr 23 2015 11:01
что значит меняется? Покажи код
если ты его не меняешь, то и меняться он не должен. Видимо все таки меняешь.
@bassx1 я бы тебе и без кода рассказал, что не так. Но у меня сегодня шар хрустальный барахлит. Потоки темной энергии все перебивают... хотя... ом-м-м-м-м-м... нет, ничего не видно =(
bassx1
@bassx1
Apr 23 2015 11:06
щас щас)

так а код чего показать, контрллер, модель, вьюха?
{!! Form::label('password','Enter User Password') !!}
{!! Form::password('password',['placeholder'=>'*','class'=>'form-control']) !!}

Controller :

public function update($id, Request $request)
{
$user = User::findOrFail($id);
$user->update($request->all());
return redirect("dashboard/users");
}

Model
class User extends Model implements AuthenticatableContract, CanResetPasswordContract {

use Authenticatable, CanResetPassword;

/**
 * The database table used by the model.
 *
 * @var string
 */
protected $table = 'users';

/**
 * The attributes that are mass assignable.
 *
 * @var array
 */
protected $fillable = ['name', 'email', 'password'];

/**
 * The attributes excluded from the model's JSON form.
 *
 * @var array
 */
protected $hidden = ['password', 'remember_token'];

}

Константин Брызгалин
@constb
Apr 23 2015 11:11
@bassx1 $user->update($request->all()); обновит все fillable-поля из инпутов. если пароль пустой - сделает пустым
bassx1
@bassx1
Apr 23 2015 11:11
пробовал в Моделе
public function setPasswordAttribute($password)
{
// dd($password);
if(empty($password)) {
unset($this->attributes['password']);
} else {
$this->attributes['password'] = bcrypt($password);
}
}
unset делать
все равно меняет
Константин Брызгалин
@constb
Apr 23 2015 11:12
@bassx1 а! потому что update не использует мутаторов
bassx1
@bassx1
Apr 23 2015 11:12
может в Request-e сделать unset?
Константин Брызгалин
@constb
Apr 23 2015 11:12
он работает напрямую с полями
bassx1
@bassx1
Apr 23 2015 11:13
вот елки) щас попробую) спасибо
Константин Брызгалин
@constb
Apr 23 2015 11:13
он срабатывает только когда ты делаешь $user->password = 'value'
я бы добавил обработчик событию saving модели и в нём бы мутировал пароли и удалял из обновляемых атрибутов
кстати unset не проканает, у тебя ещё копия атрибутов в originals там лежит. если лара увидит что в originals атрибут есть а в attributes - нет, скорее всего, сбросит его в null
тебе надо $this->attributes['password'] = $this->originals['password'] делать
наверное
посмотри ещё у модели код метода isDirty - точно будешь знать как модель определяет какие атрибуты сохранять
bassx1
@bassx1
Apr 23 2015 11:15
мм с событием тоже вариант, только я как то с событиями не пробовал, где его реализовать, прямо в моделе?
спасибо!
Константин Брызгалин
@constb
Apr 23 2015 11:16
можно в ::boot модели добавить, только не забывай parent::boot тогда вызывать.
bassx1
@bassx1
Apr 23 2015 11:16
Спасибо! ЩАс поковыряюсь)
Константин Брызгалин
@constb
Apr 23 2015 11:17
    public static function boot()
    {
        parent::boot();
        static::saving(function () { ... });
    }
как-то так
но это для событий, которые "обслуживают" саму модель. для событий, которые определяют поведение приложения лучше в EventServiceProvider создавать отдельный ивент (который в App\Events), хэндлеры к нему, а из boot этот ивент генерить на событиях модели.
use App\Events\CatalogWasChanged;
class Product extends Model {
    public static function boot()
    {
        parent::boot();
        static::created(function () { event(new CatalogWasChanged); });
        static::saved(function () { event(new CatalogWasChanged); });
    }
}
мой вариант
LaravelButler

Приветствуем Вас, @sirswa, в нашем дружном чате
В чате запрещена: реклама, спам, нецензурная лексика. Чат не место для оскорблений и выяснения отношений между участниками. За нарушение – Бан!

Русскоязычное сообщество Laravel
Самая свежая документация по Laravel 5
Документация по Laravel 4.2
Официальный сайт Laravel
Группа Вконтакте
А так же:
G+, Facebook, Twitter, GitHub

⇒ Перед тем как написать сообщение, пожалуйста, ознакомьтесь с разметкой Markdown ( Ctrl+Shift+M (Windows) Ctrl+Alt+M (Linux) Ctrl+Cmd+M (Mac) )

LaravelButler

Приветствуем Вас, @NosovDE, в нашем дружном чате
В чате запрещена: реклама, спам, нецензурная лексика. Чат не место для оскорблений и выяснения отношений между участниками. За нарушение – Бан!

Русскоязычное сообщество Laravel
Самая свежая документация по Laravel 5
Документация по Laravel 4.2
Официальный сайт Laravel
Группа Вконтакте
А так же:
G+, Facebook, Twitter, GitHub

⇒ Перед тем как написать сообщение, пожалуйста, ознакомьтесь с разметкой Markdown ( Ctrl+Shift+M (Windows) Ctrl+Alt+M (Linux) Ctrl+Cmd+M (Mac) )

bassx1
@bassx1
Apr 23 2015 11:24

Спасибо большое! Сработало вот так:
в Middleware сделал

if($request["password"] === "")
unset($request["password"]);

но потом конечно было бы с событиями поработать )
не плохо было бы*
Роман Сохарев
@greabock
Apr 23 2015 11:32
@bassx1 все же это не очень круто. Слушать сэйвинг, или назначить обсервера было бы правильнее. @constb дело говорит.
bassx1
@bassx1
Apr 23 2015 11:35
@greabock я согласен, просто это не боевой проект, а так, на коленке пару роутов)
Роман Сохарев
@greabock
Apr 23 2015 11:37
@bassx1 и еще у меня просьба одна: используй markdown когда код приводишь
bassx1
@bassx1
Apr 23 2015 12:11
@greabock OK!)
wiyfn
@wiyfn
Apr 23 2015 12:22
что нужно прописать что бы composer не обновлял конкретный пакет ? Нужно запретить обновления "sleeping-owl/admin": "2.*"
romach3
@romach3
Apr 23 2015 12:27
мб задать конкретную версию?
bassx1
@bassx1
Apr 23 2015 12:38
@greabock Все таки переделал на событие saving() т.к. в моей первом способе, не получалось сделать валидацию на confirm, т.к. он сразу пасс хешировал
Роман Сохарев
@greabock
Apr 23 2015 12:39
грац
bassx1
@bassx1
Apr 23 2015 12:39
:)
Sleeping Owl
@sleeping-owl
Apr 23 2015 12:57
@wiyfn а что с ним не так, что ты не хочешь его обновлять?
Роман Сохарев
@greabock
Apr 23 2015 13:02
@sleeping-owl совместимость не ломал? ))
bassx1
@bassx1
Apr 23 2015 13:03
@greabock слушай, снова хрень получается
методы saving и updating, вызываются не только при апдейте, а еще и при logout-e и после выхода он все переписывает
скажите как решить проблему, я уже часа 2 убил, это что то нереальное, как так, должен же быть нормальный способ
Sleeping Owl
@sleeping-owl
Apr 23 2015 13:04
@greabock я 2ю версию последнее время и не трогаю, 3.0 на подходе, я там совместимость ломаю
bassx1
@bassx1
Apr 23 2015 13:04
public static function boot(){
        parent::boot();
        static::saving(function($data){
            if($data["password"] === ""){
                unset($data["password"]);
            } elseif(count($data["password"]))
                $data["password"] = bcrypt($data["password"]);
        });
    }
с событие на updating тоже самое, перетирает, я так прикидываю из-за того что remember_token переписывает при выходе
как решить? Я в панике просто)
Роман Сохарев
@greabock
Apr 23 2015 13:13
тут фишка в том, что $data['password'] вернет старые данные, если новые не были определены.
таким образом, ты перешифровываешь пароль еще на раз
при каждом логауте
bassx1
@bassx1
Apr 23 2015 13:15
@greabock ага, я так и понял) но как это обойти?
Sleeping Owl
@sleeping-owl
Apr 23 2015 13:16
@bassx1 насколько я помню во-первых замыкание принимает элоквент объект, а не сохраняемые данные, то есть у тебя $data - это объект $user. чтобы проверить изменялись ли данные есть метод isDirty($field)
bassx1
@bassx1
Apr 23 2015 13:18
@sleeping-owl ага, щас попробую
Sleeping Owl
@sleeping-owl
Apr 23 2015 13:20
@bassx1 мне кажется должно быть что-то наподобие этого:
public static function boot()
{
    parent::boot();
    static::saving(function ($user)
    {
        if ($user->isDirty('password'))
        {
            if (empty($user->password))
            {
                $user->password = $user->getOriginal('password');
            } else
            {
                $user->password = bcrypt($user->password);
            }
        }
    });
}
Роман Сохарев
@greabock
Apr 23 2015 13:20
толко элз убрать заменить ретернами ))
для красоты ))
Sleeping Owl
@sleeping-owl
Apr 23 2015 13:21
ну это на любителя
мало ли нужно будет еще функционала добавить, тогда ретерны придется исправлять
Роман Сохарев
@greabock
Apr 23 2015 13:22
уговорил )
bassx1
@bassx1
Apr 23 2015 13:27
@sleeping-owl блин кажется сработало!)))
Спасибо!
я думал я кончусь )
а да, только надо ловить событие не saving, а updating
а то там если использовать встроенный Auth для реги, он получается 2 раза хеширует его
при регистрации
wiyfn
@wiyfn
Apr 23 2015 13:51
@sleeping-owl , да все нормально. Просто внес свои правки когда то.
Maxim
@Big-Shark
Apr 23 2015 14:13
@wiyfn и каким тогда образом тебе поможет отказ от обновлений?
@likeapimp код плохой
минусы
1 свич для 2 условий?
2 передает 1 или 2, это серьездно?
3 а ничего что у нас вернется разный результат, функция должна возвращять однородные данные
4 не рекомендуется использовать больше 2 ретернов в функции.
LaravelButler

Приветствуем Вас, @hellpirat, в нашем дружном чате
В чате запрещена: реклама, спам, нецензурная лексика. Чат не место для оскорблений и выяснения отношений между участниками. За нарушение – Бан!

Русскоязычное сообщество Laravel
Самая свежая документация по Laravel 5
Документация по Laravel 4.2
Официальный сайт Laravel
Группа Вконтакте
А так же:
G+, Facebook, Twitter, GitHub

⇒ Перед тем как написать сообщение, пожалуйста, ознакомьтесь с разметкой Markdown ( Ctrl+Shift+M (Windows) Ctrl+Alt+M (Linux) Ctrl+Cmd+M (Mac) )

Orel
@2byte
Apr 23 2015 14:27
Привет всем, подскажите сервис онлайн сборка композер пакетов и получения их в архиве
LaravelButler

Приветствуем Вас, @usermuser, в нашем дружном чате
В чате запрещена: реклама, спам, нецензурная лексика. Чат не место для оскорблений и выяснения отношений между участниками. За нарушение – Бан!

Русскоязычное сообщество Laravel
Самая свежая документация по Laravel 5
Документация по Laravel 4.2
Официальный сайт Laravel
Группа Вконтакте
А так же:
G+, Facebook, Twitter, GitHub

⇒ Перед тем как написать сообщение, пожалуйста, ознакомьтесь с разметкой Markdown ( Ctrl+Shift+M (Windows) Ctrl+Alt+M (Linux) Ctrl+Cmd+M (Mac) )

LaravelButler

Приветствуем Вас, @rdgutierrez, в нашем дружном чате
В чате запрещена: реклама, спам, нецензурная лексика. Чат не место для оскорблений и выяснения отношений между участниками. За нарушение – Бан!

Русскоязычное сообщество Laravel
Самая свежая документация по Laravel 5
Документация по Laravel 4.2
Официальный сайт Laravel
Группа Вконтакте
А так же:
G+, Facebook, Twitter, GitHub

⇒ Перед тем как написать сообщение, пожалуйста, ознакомьтесь с разметкой Markdown ( Ctrl+Shift+M (Windows) Ctrl+Alt+M (Linux) Ctrl+Cmd+M (Mac) )

LaravelButler

Приветствуем Вас, @avilash, в нашем дружном чате
В чате запрещена: реклама, спам, нецензурная лексика. Чат не место для оскорблений и выяснения отношений между участниками. За нарушение – Бан!

Русскоязычное сообщество Laravel
Самая свежая документация по Laravel 5
Документация по Laravel 4.2
Официальный сайт Laravel
Группа Вконтакте
А так же:
G+, Facebook, Twitter, GitHub

⇒ Перед тем как написать сообщение, пожалуйста, ознакомьтесь с разметкой Markdown ( Ctrl+Shift+M (Windows) Ctrl+Alt+M (Linux) Ctrl+Cmd+M (Mac) )

Dmytro Krasov
@dmitriymarley
Apr 23 2015 20:01
Ребят, пытаюсь понять как в 5-й версии работает Auth:attempt, но что-то не получается. как ему пароль передавать то для проверки?
kittlesa
@kittlesa
Apr 23 2015 20:02
what
Dmytro Krasov
@dmitriymarley
Apr 23 2015 20:02
 public function authenticate()
    {
        if (Auth::attempt(['email' => $email, 'password' => $password]))
        {
            return redirect()->intended('dashboard');
        }
    }
Из доки взято.
kittlesa
@kittlesa
Apr 23 2015 20:03
what
Dmytro Krasov
@dmitriymarley
Apr 23 2015 20:05
Как правильно сделать?
kittlesa
@kittlesa
Apr 23 2015 20:05
what
Sleeping Owl
@sleeping-owl
Apr 23 2015 20:09
@dmitriymarley самое простое решение "в лоб":
if (Auth::attempt(['email' => \Input::get('email'), 'password' => \Input::get('password')]))
kittlesa
@kittlesa
Apr 23 2015 20:09
what
Dmytro Krasov
@dmitriymarley
Apr 23 2015 20:10
@sleeping-owl не поверишь, только что пробовал точно так же, только через переменные - не работало.
спасибо
kittlesa
@kittlesa
Apr 23 2015 20:11
what
Sleeping Owl
@sleeping-owl
Apr 23 2015 20:12
через переменные или напрямую разницы нет, видимо ты как-то неправильно реализовывал
kittlesa
@kittlesa
Apr 23 2015 20:13
what