These are chat archives for LaravelRUS/chat

14th
Nov 2016
Roman Sadoyan
@core01
Nov 14 2016 08:09
Завод норм, но лучше в шахту или вахтой на север к медведям
OsipovMN
@projct1
Nov 14 2016 08:37
кто-нить юзал https://chmln.github.io/flatpickr/ ?
Юрий
@sawerus
Nov 14 2016 08:42
@rorc как альтернативу вот это посмотри
https://uxsolutions.github.io/bootstrap-datepicker
по твоей ссылке не юзал, но что сбросил пока устраивает.
OsipovMN
@projct1
Nov 14 2016 08:46
@sawerus нету таймпикера (
Alexander
@spartaque
Nov 14 2016 08:55
@rorc Ну есть еще такой вариант. https://eonasdan.github.io/bootstrap-datetimepicker/ . Есть возможность настройки локализации
OsipovMN
@projct1
Nov 14 2016 08:55
@spartaque ну это да, мне не нравится что он завязан на jQuery и bootstrap
Anton Kartsev
@bigperson
Nov 14 2016 09:11
@rorc для смартфонов рекомендется использовать найтивный дататайм формат
Dave
@aios
Nov 14 2016 09:15
Кто может поделиться конфигом Elixir?
OsipovMN
@projct1
Nov 14 2016 10:22
есть в ларе какое-нибудь средство, чтобы пустые строки автоматом конвертировались в null?
чтобы не создавать 100500 одинаковых мутаторов для каждого поля
Andy Melentev
@Sinersis
Nov 14 2016 10:34
Приветы! Слушайте Model::has() просто проверяет наличие?
KarmaBot
@KarmaBot
Nov 14 2016 10:34
Не узнал тебя, @Sinersis. Богатым будешь :)
Alexander
@spartaque
Nov 14 2016 10:41
@rorc как по мне легче поля в базе сделать nullable()
OsipovMN
@projct1
Nov 14 2016 10:43
@spartaque лара автоматом не преобразует пустые строки в null
Alexander
@spartaque
Nov 14 2016 10:44
@rorc Вроде как преобразовывает. http://joxi.ru/4Ak0K87IMxkjlr
OsipovMN
@projct1
Nov 14 2016 10:45
@spartaque попробуй вставить пустую строку в поле nullable datetime или nullable integer
Alexander
@spartaque
Nov 14 2016 10:46
@rorc А зачем вставлять пустую строку в поле, которое может хранить null?
@rorc Как я знаю нету такой магии. Нужно либо null писать в поля либо обойтись без конвертации и проверять на пустую строку
OsipovMN
@projct1
Nov 14 2016 10:48
@spartaque например когда у тебя есть select и по умолчанию у тебя в нём пусто (не выбрано как бы value=""), поэтому пустая строка
@spartaque в любом случае всё сводится к мутаторам setFieldAttribute
@spartaque просто если таких полей много...
Alexander
@spartaque
Nov 14 2016 10:50
@rorc if($select_value == '') $select_value = null; . Так плохо?
OsipovMN
@projct1
Nov 14 2016 10:51
@spartaque ты плохо понимаешь суть)
Alexander
@spartaque
Nov 14 2016 10:51
@rorc как по мне лучше в базу писать корректно, чем потом костылить на выходе. Может быть;)
Dave
@aios
Nov 14 2016 10:53
@rorc юзай фрактал
Alexander
@spartaque
Nov 14 2016 10:53
@rorc а еще может быть что ты не полностью описал свой случай
Dave
@aios
Nov 14 2016 10:53
или хотя бы паттерн presenter
@spartaque хочет костылить - дай ему возможность
@spartaque только пусть делает правильно
devweb99
@devweb99
Nov 14 2016 10:54
Как из базы достать повторяющиеся значения (одного поля) и вывести их все в массив с id ?
OsipovMN
@projct1
Nov 14 2016 10:54
@spartaque ну так дело как раз в том, чтобы каждое поле не обрабатывать вручную return $val == '' ? null : $val при сохранении
@aios чё за фрактал?
@rorc Если не ошибаюсь
OsipovMN
@projct1
Nov 14 2016 10:56
@spartaque @aios ок, спс, гляну
devweb99
@devweb99
Nov 14 2016 10:56
Как из базы достать повторяющиеся значения (одного поля) и вывести их все в массив с id ?
OsipovMN
@projct1
Nov 14 2016 10:56
@aios @spartaque спс
KarmaBot
@KarmaBot
Nov 14 2016 10:56
Спасибо (+1) для @aios принято! Текущая карма +267.
Спасибо (+1) для @spartaque принято! Текущая карма +3.
Ваня Devium
@webdevium
Nov 14 2016 11:08
@devweb99 ->pluck() тебе в помощь
OsipovMN
@projct1
Nov 14 2016 11:16
@spartaque @aios короче сделал трейт и всё автоматом конвертится где его подключить)
trait Nullable
{
    abstract public function getNullableFields();

    public static function bootNullable()
    {
        static::saving(function($model) {
            $model->convertToNull();
        });
    }

    protected function convertToNull()
    {
        foreach ($this->getNullableFields() as $field) {
            if ($this->{$field} == '') {
                $this->{$field} = null;
            }
        }
    }
}
так свои конвертеры можно создавать любые (касты на языке лары)
Alexander
@spartaque
Nov 14 2016 11:20
@rorc Я похожую штуку делал для автоматической генерации хэша Hashids для записей
Denis Mazur
@lans8097
Nov 14 2016 11:46
Привет всем.
KarmaBot
@KarmaBot
Nov 14 2016 11:46
@lans8097, здравствуй.
Denis Mazur
@lans8097
Nov 14 2016 11:47

Подскажите как указать через валидатор пару уникальных ключей ?

$this->validate($request,[
            'name'   =>'required|min:2|max:40',
            'email'  =>'required|email',
            'subject'=>'required|min:5|max:255',
            'message'=>'required|min:20|max:500'
        ]);

Тоесть subject & text должны быть уникалыми

как указать отдельно это понятно, но как указать что парключи
SELECT COUNT(`id`) FROM `about` WHERE `suibject`='sub1' AND `text` ='text1';
Юрий
@sawerus
Nov 14 2016 11:53
@lans8097 unique
Denis Mazur
@lans8097
Nov 14 2016 11:54
@sawerus а если такая тема есть, но не с таким сообщением ?
Юрий
@sawerus
Nov 14 2016 11:54
@lans8097 ничего не понятно
Denis Mazur
@lans8097
Nov 14 2016 11:55
@sawerus Мне надо чтобы кинуло исключение если это мыло уже писало данное сообщение
Юрий
@sawerus
Nov 14 2016 11:57
@lans8097 чет подход не очень...
Denis Mazur
@lans8097
Nov 14 2016 11:57
@sawerus а как надо ?
Юрий
@sawerus
Nov 14 2016 11:57
написал я сообщение, потом через месяц другое с таким же названием и что...
в любой таблице id есть а названия сообщений побоку
Denis Mazur
@lans8097
Nov 14 2016 11:58
@sawerus это да, а если уникум просто зациклит POST заголовок ? over1500 message
Юрий
@sawerus
Nov 14 2016 12:04
@lans8097 что ты имешь ввиду под зациклит ?
@lans8097 ты не на get роут пост шлешь свой ?
Denis Mazur
@lans8097
Nov 14 2016 12:10
@sawerus на post
Юрий
@sawerus
Nov 14 2016 12:11
@lans8097 может это паранойя, про циклы ? )))
Denis Mazur
@lans8097
Nov 14 2016 12:12
@sawerus не совсем ))
Вот сделал форму отправки через ajax и не дописав условие обнуления формы можно сколько угодно нажимать на кнопку и встовлять одну и туже запись )
@sawerus лет 5 назад таким образом накручивал себе реферные подарки в одной игре )
@lans8097 самый конец Adding Additional Where Clauses:
icanall10
@icanall10
Nov 14 2016 12:24
здравствуйте
KarmaBot
@KarmaBot
Nov 14 2016 12:24
Приветствую тебя, @icanall10!
icanall10
@icanall10
Nov 14 2016 12:28

здравствуйте
подскажите, есть ли способ сделать подзапрос через query builder?

я знаю, что можно сделать вот так

DB::table('exmaple')
    ->selectRow('
        (select column from table where ...) as value
    ')
    ->get()

но если я пытаюсь сделать так:

$subQuery = DB::table('table')
    ->where('...')
    ->selectRaw('name');

DB::table('exmaple')
    ->selectRaw('
        ('.$subQuery->toSql().') as value
    ')
    ->get();

то ничего не выходит

KarmaBot
@KarmaBot
Nov 14 2016 12:28
@icanall10, здравствуй.
Anton Vorontsov
@symbios-zi
Nov 14 2016 12:34
@icanall10
DB::table('users')
    ->whereIn('id', function($query)
    {
        $query->select(DB::raw(1))
              ->from('orders')
              ->whereRaw('orders.user_id = users.id');
    })
    ->get();


select * from users where id in (
    select 1 from orders where orders.user_id = users.id
)
Denis Mazur
@lans8097
Nov 14 2016 12:35
@sawerus Спасибо.
Пора перестать читать русскую Доку
KarmaBot
@KarmaBot
Nov 14 2016 12:35
Спасибо (+1) для @sawerus принято! Текущая карма +68.
Юрий
@sawerus
Nov 14 2016 12:36
@lans8097 давно пора
icanall10
@icanall10
Nov 14 2016 12:42
@symbios-zi спасибо. но не соображу, как это применить в моем примере. Допустим мне не нужен whereIn, мне нужно получить через подзапрос сумму какой-то колонки из другой таблицы. как это сделать?
KarmaBot
@KarmaBot
Nov 14 2016 12:42
Спасибо (+1) для @symbios-zi принято! Текущая карма +196.
Anton Vorontsov
@symbios-zi
Nov 14 2016 12:43
@icanall10 тебе бы полный пример привести твоего запроса
icanall10
@icanall10
Nov 14 2016 12:44
$orders = DB::table('orders')
    ->selectRaw('
        (
            SELECT 
                sum(order_items.contactor_sum) 
            FROM 
                order_items
            WHERE 
                order_items.order_id = orders.id 
        ) AS sum
    ')
    ->get();
Anton Vorontsov
@symbios-zi
Nov 14 2016 12:48
@icanall10 походу иначе никак, или я незнаю. Посмотрел и у меня подобным образом
icanall10
@icanall10
Nov 14 2016 12:48
@symbios-zi спс. буду искать
KarmaBot
@KarmaBot
Nov 14 2016 12:48
Спасибо (+1) для @symbios-zi принято! Текущая карма +197.
Anton Kartsev
@bigperson
Nov 14 2016 15:25
Всем привет. У меня есть готовый SQL файл со структурой БД, могу ли я как-то из него попроще получить файлы миграций для ларавелки?
KarmaBot
@KarmaBot
Nov 14 2016 15:25
@bigperson, привет =)
Nickolay
@WarDJ
Nov 14 2016 15:43
Всем привет
ребят помогите пожалуйста настроить gulp т.е. что я хочу, для локальной машины использовать обычные css / js (пути) а на проде минифицировать, есть такая возможность ?
Arsen Soroka
@arsen-s
Nov 14 2016 16:13
@WarDJ зачем тебе на локале юзать обычные css / js (пути)?
в чем проблема настроить gulp на локале, запускаешь gulp watch, а на лайве gulp --production
Anton Kartsev
@bigperson
Nov 14 2016 16:25
@Cyber-host Да спасибо, уже нашел
@Cyber-host теперь еще бы найти как данные из sql через Seeds выгружать
Maksim
@Stereotip42
Nov 14 2016 17:03
Парни, такой вопрос. Где по-хорошему держать всякую херню, которая помогает преобразовывать данные в темлпейтах?
Типа секунды в строку вида "10 д. 5 ч. 17 мин", "Был в сети 10 мин.". Куда можно это отдельно положить, чисто для вывода в шаблоне по итогу, если на входе всегда минуты
Alexander
@spartaque
Nov 14 2016 17:03

Столкнулся с на первый взгляд простой проблемой, но почему-то застрял. Нужно собрать двумерный массив:

        $result = collect($result);
        foreach ($users AS $user_key=> $user) {
            $user = collect($user);
            $result->put($user_key, $user_key->only(['hash', 'email']));
            foreach ($user->posts AS $post_key =>  $post) {
                // Не работает
                $result->$user_key->put($post_key, $post);
            }
        }

Как во втором foreach добавить к результирующему массиву юзера посты? Собираю вручную, так как нужно вставлять еще данные, которые опущены в примере

@Stereotip22 Carbon?
Maksim
@Stereotip42
Nov 14 2016 17:05
@spartaque Не, мне надо именно обертки какие-то, где внутри карбон всё сделает уже
JhaoDa
@jhaoda
Nov 14 2016 17:06
@Stereotip22 хелперы
Alexander
@spartaque
Nov 14 2016 17:06
@bigperson DB::unprepared(File::get('path_to_dump/dump.sql'));?
Maksim
@Stereotip42
Nov 14 2016 17:08
@jhaoda расширить в плане коробочные хелперы?
JhaoDa
@jhaoda
Nov 14 2016 17:08
@Stereotip22 ты знаешь, что такое хелперы? Это функции. Простые функции. Собранные в файл.
@Stereotip22 внимание, сложный вопрос: что мешает сделать такой же файл с функциями? И что ты собрался расширять?
Maksim
@Stereotip42
Nov 14 2016 17:10
@jhaoda ну оно то ничего не мешает, я просто спрашивал, как по-хорошему решить этот вопрос
@jhaoda ага, походу ничего, там вендоровские хэлперы такие, как ты сказал
@jhaoda ну я понял, спасибо
KarmaBot
@KarmaBot
Nov 14 2016 17:11
Спасибо (+1) для @jhaoda принято! Текущая карма +1306.
Maksim
@Stereotip42
Nov 14 2016 17:11
@spartaque спасибо
KarmaBot
@KarmaBot
Nov 14 2016 17:11
Спасибо (+1) для @spartaque принято! Текущая карма +4.
JhaoDa
@jhaoda
Nov 14 2016 17:13
@Stereotip22 а можно сделать просто класс со статическими методами. Или не статическими. Свобода, чувак. И ларавел тут ни с какого боку.
Maksim
@Stereotip42
Nov 14 2016 17:15
@jhaoda ну оно так и было сделано, левый хэлпер фасадом выворачивал данные, а потом взрослые прогеры сказали, что это ублюдство
@jhaoda
Anton Kartsev
@bigperson
Nov 14 2016 17:16
@spartaque Спасибо. Решил все таки из CSV импортировать. В исходном sql присутсвуют CREATE TABLE, видимо из-за них DB::unprepared не работает, при существующих таблицах, хотя ошибки никакие не выводятся
KarmaBot
@KarmaBot
Nov 14 2016 17:16
Спасибо (+1) для @spartaque принято! Текущая карма +5.
JhaoDa
@jhaoda
Nov 14 2016 17:17
@Stereotip22 «левый хэлпер фасадом выворачивал данные» ВАТ?
Maksim
@Stereotip42
Nov 14 2016 17:19
@jhaoda ну т.е. в app/ создавалась дирректория Helpers, там классы, которые дергают статические методы, и обернутые в фасад, и в шаблоне всё это вызывалось, аля \TaskTimeHelper::getHoursAndMinutes();
JhaoDa
@jhaoda
Nov 14 2016 17:19
@Stereotip22 и большие дяди сказали, что это тухляк? :) А большие дяди сказали, как НЕ тухляк?
Maksim
@Stereotip42
Nov 14 2016 17:20
@jhaoda ну они в целом хейтят фасадный сахар. не, только истюлей мне дали, не подсказали, а я решил и не играть на нервах :)
JhaoDa
@jhaoda
Nov 14 2016 17:21
@Stereotip22 начнем с того, что в ларавел нет фасадов. То, что Тэйлор называет фасадами, всего лишь прокси
Alexey Samoylov
@russianlagman
Nov 14 2016 17:21
какэто
а почему неймспейс Facades?
JhaoDa
@jhaoda
Nov 14 2016 17:23
@russianlagman ну захотелось ему так
Alexander
@spartaque
Nov 14 2016 17:23
@russianlagman Если бы ты прочитал как работают фасады, такой бы вопрос не задал
Alexey Samoylov
@russianlagman
Nov 14 2016 17:24
@spartaque я знаю, как работают фасады
JhaoDa
@jhaoda
Nov 14 2016 17:39
@Stereotip22 я тоже не люблю эти как бы фасады.
@Stereotip22 только надо понимать, что в ларавел как бы фасады проксируют вызовы в контейнер, а твоим функция-полезняшкам в контейнере что делать? Поэтому фасады тут смысла не имеют
Anton Kartsev
@bigperson
Nov 14 2016 17:51
Импортирую данные в таблицу из CSV файла изспользуя Seeds. Подскажите как можно оптимизировать? http://laravel.io/bin/2WGME зависает напрочь при импорте большого количества записей.
Говорит мол слишком много плайсхолдеров Prepared statement contains too many placeholders
Роман Сохарев
@greabock
Nov 14 2016 18:27
http://laravel.io/bin/2WGME#27,47
$chunks =  array_chunk($seedData, 20);

foreach($chunks  as $chunk){
           DB::table($table)->insert($chunk);
}
@bigperson размер чанка сам подбери
Anton Kartsev
@bigperson
Nov 14 2016 18:33
@greabock спасибо добрый человек
KarmaBot
@KarmaBot
Nov 14 2016 18:33
Спасибо (+1) для @greabock принято! Текущая карма +460.
Дмитрий Мязин
@d4c0
Nov 14 2016 18:39
Ребята, куда правильнее всего будет вынести сообщения каких либо нотификаций, flash сообщений и прочего. Текст сообщения прямо в контроллере выглядит убого. Кто как делает, расскажите? Вроде как в языковые файлы будет норм?
JhaoDa
@jhaoda
Nov 14 2016 19:13
@d4c0 будет
Maksim
@maksimmysak
Nov 14 2016 20:43
Всем привет.
Подскажыте какой механизм использовать при создании шаблона когда на каждом роуте нужно выводить меню ?
KarmaBot
@KarmaBot
Nov 14 2016 20:43
@maksimmysak, привет, как настроение?
Zlatoslav Desyatnikov
@zlodes
Nov 14 2016 20:44
Maksim
@maksimmysak
Nov 14 2016 20:52
Интересует как организовать так, чтоб в независимости от роутера всегда выводилось из базы меню(или другой компонент ) чтоб не вытаскивать в каждом контролере меню
Oleg
@Malezha
Nov 14 2016 20:56
@maksimmysak погугли view composer
Maksim
@maksimmysak
Nov 14 2016 20:57
спасибо @Malezha
KarmaBot
@KarmaBot
Nov 14 2016 20:57
@maksimmysak, в этом чате принято добавлять имя пользователя, чтобы его поблагодарить.
nocaut
@dikiypac
Nov 14 2016 21:25
как получить гетер такого поля siteType
JhaoDa
@jhaoda
Nov 14 2016 21:29
@dikiypac getSiteType()