These are chat archives for LaravelRUS/chat

24th
Nov 2016
Игорь Мандыч
@chiz-developer
Nov 24 2016 00:20
Есть кто-то живой?
Dave
@aios
Nov 24 2016 01:08
@chiz-developer читаем правила
Игорь Мандыч
@chiz-developer
Nov 24 2016 01:09
@aios сорри), слава Богу, хоть кто-то жив в такую рань) Подскажи, плиз

есть таблица pages(id,name,content), и pagefilters(id,page_id,name,value)
пытаюсь сделать в модели Post связь

    public function pagefilters()
    {
        return $this->hasMany('App\Pagefilter');
    }

Я правильно связываю таблицы?

$item = new Page();
 $item->name         = $request->name;
$item->pagefilters()->create($request->filters);

мне постоянно толдычит

Column not found: 1054 Unknown column 'updated_at' in 'field list' (SQL: insert into pagefilters (page_id, updated_at, created_at) values (, 2016-11-24 01:05:54, 2016-11-24 01:05:54))

Sergey
@UnQuaiz
Nov 24 2016 02:02
@chiz-developer в модели Pagefilter добавь protected $timestamps = false; и eloquent перестанет при вставке данных добавлять дату обновления и создания
@chiz-developer ну и плюс, когда делаешь relation пиши вот так: $this->hasMany(App\Pagefilter::class);
на случай если тебе надо будет отрефакторить класс Pagefilter, например переименовать
Alexander
@bobrovskikh
Nov 24 2016 04:53
Всем привет! А есть какая-то причина не использовать Intervention Image Cache при выводе изображений?
KarmaBot
@KarmaBot
Nov 24 2016 04:53
@bobrovskikh даров!
Alexander
@bobrovskikh
Nov 24 2016 05:01
Я имею ввиду, что с Intervention Image Cache не нужно заранее нарезать изображения. Если нарезать заранее под размеры, то в случаи если дизайн меняется, нужно будет перенарезать изображения под актуальные размеры. Но есть ли подводные камни у Intervention Image Cache ?
sowdfr
@sowdfr
Nov 24 2016 06:23
Ктонибудь с SOAP имел дело?
Ilnur Shaykhutdinov
@Nur777
Nov 24 2016 06:43
Доброе утро всем!
desbiger
@desbiger
Nov 24 2016 06:43
@Nur777 привет
Ilnur Shaykhutdinov
@Nur777
Nov 24 2016 06:54
Пытаюсь использовать helpers.php file в composer package, НО его не видно!
Сам helpers.php находится в том же пакете, в котором я его пытаюсь использовать. Файл содержит только функции и ничего больше.
В composer.json (кот. принадлежит пакету) прописано:
"autoload": {
        "psr-4": {
            "CoolVendor\\SuperPackage\\": "src/"
        },
        "files": [
              "src/Models/Services/helpers.php"
        ]
    },
В чём может быть проблема?
desbiger
@desbiger
Nov 24 2016 06:56
@Nur777 автозагрузку файла надо прописывать в корневом composer.json
Ilnur Shaykhutdinov
@Nur777
Nov 24 2016 06:56
Например, там есть функция welcome_to_the_moon, когда я его вызываю в коде выходит Exception типа "в первый раз слышу о такой функции, где она?" :)
@desbiger т.е. внутри пакета никак не использовать helpers файлы без того, чтобы прописывать там да?
desbiger
@desbiger
Nov 24 2016 06:57
вот это перенси в корневой json и будет тебе счастье
 "files": [
              "src/Models/Services/helpers.php"
        ]
Ilnur Shaykhutdinov
@Nur777
Nov 24 2016 06:57
@desbiger это я знаю, суть была в том, чтобы использовать helpers файлы именно в пакете.
desbiger
@desbiger
Nov 24 2016 06:58
если бы пакет работал сам то да, а так композер пакет для твоего приложения не известен
либо помещай в пространство имен которое тоже уже используется
Ilnur Shaykhutdinov
@Nur777
Nov 24 2016 06:59
@desbiger с чего это неизвестен? composer dump-autoload не зря же делаем я так понимаю
@desbiger в итоге из пакета никак да?
desbiger
@desbiger
Nov 24 2016 06:59
я имею ввиду файл composer.json который лежит в корне пакета
Ilnur Shaykhutdinov
@Nur777
Nov 24 2016 06:59
@desbiger я тоже
desbiger
@desbiger
Nov 24 2016 07:00
ну да...
я просто тоже так пытался сделать)))
буквально недели 2 назад
хотя может быть и существую способы.... но я их не нашел
но и не искал прям уж так сильно))
Ilnur Shaykhutdinov
@Nur777
Nov 24 2016 07:04
@desbiger ладно, спасибо) вроде что-то нашёл, короче надо включать их в ручную в методе register in package ServiceProvider. Ч/з require. Суть в этом.
Подробнее здесь: https://laracasts.com/discuss/channels/laravel/laravel-5-package-development-helpers-file
Но там require не из папки package, а из application. В общем надо пробовать.
@desbiger спс
KarmaBot
@KarmaBot
Nov 24 2016 07:05
Спасибо (+1) для @desbiger принято! Текущая карма +2.
desbiger
@desbiger
Nov 24 2016 07:05
@Nur777 не за что)
Alexander
@Dualse
Nov 24 2016 07:35
@sowdfr Да
Soprun Vladislav
@vlsoprun
Nov 24 2016 07:45
Здорова мужики!
desbiger
@desbiger
Nov 24 2016 08:34
@vlsoprun привет
Alexander Avakov
@pinguinjkeke
Nov 24 2016 10:13
Всем привет. В проекте есть дататаблицы, необходимо реализовать фильтры по полям
KarmaBot
@KarmaBot
Nov 24 2016 10:13
@pinguinjkeke и тебе не хворать :)
Alexander Avakov
@pinguinjkeke
Nov 24 2016 10:13
Какую либу взять?
Scout? Tnt?
desbiger
@desbiger
Nov 24 2016 10:14
Model::where(function($model){
     return $model->where('field','=',$value);
})->paginate(request()->get('count',20))
@pinguinjkeke такое не пойдет
внутри функции проверяешь на наличие например переменных поста или гета и исходя из этого добавляешь условие
мало того можешь это вынести в отдельный класс
Alexander Avakov
@pinguinjkeke
Nov 24 2016 10:22
@desbiger это понятно. Я думал, что библиотека облегчит это дело. Зачем писать велосипед
desbiger
@desbiger
Nov 24 2016 10:22
@pinguinjkeke да там писать то 10 строк.... больше будеш устанавливать пакет и настраивать его
Alexander Avakov
@pinguinjkeke
Nov 24 2016 10:24
@desbiger 20 моделей в моем проекте должны получить возможность поиска по ним. Думаю, лучше пакет
desbiger
@desbiger
Nov 24 2016 10:25
тогда да
Anton Kartsev
@bigperson
Nov 24 2016 10:58
Всем привет. Подскажите пожалуйста мне нужно вести лог действий с заказами. Когда и кем создан, изменен, что именно менялось, какие уведомления и кому высылались по заказу, и т.д.. Также мне нужно иметь возможность просматривать у пользователя какие действия он совершал. Как эту историю лучше организовать? Что лучше использовать, отдельно модель History (со связью one-to-many к пользователю и полиморфной связью к другим моделям над которыми осуществляется действие) или можно и лучше обойтись нотификациями?
KarmaBot
@KarmaBot
Nov 24 2016 10:58
Не узнал тебя, @bigperson. Богатым будешь :)
desbiger
@desbiger
Nov 24 2016 11:15
@bigperson я бы это сделал через события, как это в доках и рекомендовано для таких задач
передавал бы туда все данные и на стороне события уже формировал бы историю и логи
JhaoDa
@jhaoda
Nov 24 2016 11:18
@bigperson изменение модели отслеживать можно через https://github.com/mpociot/versionable
А вот иные действия — это уже сам.
Anton Kartsev
@bigperson
Nov 24 2016 11:18
@desbiger Спасибо, пошел читать еще раз доги про эвенты
KarmaBot
@KarmaBot
Nov 24 2016 11:18
Спасибо (+1) для @desbiger принято! Текущая карма +3.
desbiger
@desbiger
Nov 24 2016 11:19
не за что
там достаточно все просто и удобно
Anton Kartsev
@bigperson
Nov 24 2016 11:19
@jhaoda спасибо, гляну сейчас
KarmaBot
@KarmaBot
Nov 24 2016 11:19
Спасибо (+1) для @jhaoda принято! Текущая карма +1335.
Anton Kartsev
@bigperson
Nov 24 2016 11:24
@jhaoda Я правильно понимаю, что для отслеживания изменений связей данные пакет не совсем подойдет. То есть у меня у заказа есть клиент, у клиента есть телефон, по факту если изменится телефон у клиента, то в заказе данное действие не будет зафиксировано, а по логике должно.
JhaoDa
@jhaoda
Nov 24 2016 11:26
@bigperson ну если повесишь отслеживание ещё и на модель клиента, то зафиксируется, но в истории клиента
Anton Kartsev
@bigperson
Nov 24 2016 11:27
@jhaoda Понял. Спасибо. Все же буду смотреть в сторону эвентов. Т.к. нужно фиксировать все изменения, включая связанные модели, и отслеживать кто эти изменения сделал.
desbiger
@desbiger
Nov 24 2016 11:27
@bigperson события для этого и были сделаны... история и логи
хотя туда я вешаю много чего еще... отправление почты, нотификация.. и .т.д
JhaoDa
@jhaoda
Nov 24 2016 11:28
@bigperson ты просто напишешь такой же пакет, но с преферансом и куртизанками. Это не значит, что его не нужно писать, но не нужно думать, что ты напишешь что-то совсем иное
desbiger
@desbiger
Nov 24 2016 11:28
то что можно вынести в отдельные настройки по принципу делать не делать
Nikita
@RedDevilHat
Nov 24 2016 11:28

всем привет
поцононы у вас же тоже yml есть? =)

imports:
    - { resource: ../app/config/parameters.yml }

почему не подрубает так?
конфиг лежит в папке dredd
она на одном уровне с app

KarmaBot
@KarmaBot
Nov 24 2016 11:28
Не узнал тебя, @RedDevilHat. Богатым будешь :)
JhaoDa
@jhaoda
Nov 24 2016 11:29
@bigperson потому что я уже такое писал :)
@RedDevilHat это не ларавел. В ларавел нет yml.
desbiger
@desbiger
Nov 24 2016 11:30
@jhaoda а по поводу вчерашней задачи с ролями было найдено решение не в лоб... если интересно могу показать
JhaoDa
@jhaoda
Nov 24 2016 11:30
@desbiger не помню такой задачи
desbiger
@desbiger
Nov 24 2016 11:31
разделение кабинетов пользователей по ролям не теряя урл
JhaoDa
@jhaoda
Nov 24 2016 11:31
@desbiger ага... ну и?
desbiger
@desbiger
Nov 24 2016 11:31
а точнее я искал возможность подмены контроллера
короче суть в том что логика выборки происходит в конструкторе базового контроллера
JhaoDa
@jhaoda
Nov 24 2016 11:33
@desbiger простынку убери, плиз
desbiger
@desbiger
Nov 24 2016 11:34
@jhaoda так лучше?
вот промежуточный класс роутер
JhaoDa
@jhaoda
Nov 24 2016 11:35

@desbiger цитирую бота

чтобы показать длинный листинг кода желательно использовать pastebin-сервис, например gist.github.com или laravel.io/bin.

Тля, ну почему вы все упорно игнорируете правила...
desbiger
@desbiger
Nov 24 2016 11:37
в кернеле инициализацию сессии ставим на самый верх что бы в конструкторе заработали
я же воспользовался
JhaoDa
@jhaoda
Nov 24 2016 11:37
@desbiger слушай, ну что сложного-то? Взять ВЕСЬ код, закинуть его в ДВА РАЗНЫХ файла в ОДНОМ гисте, дать ссылку сюда, завернув её в код, как написано в правилах?
desbiger
@desbiger
Nov 24 2016 11:38
ща сделаю
я просто не так понял
JhaoDa
@jhaoda
Nov 24 2016 11:42
@desbiger третья попытка
desbiger
@desbiger
Nov 24 2016 11:42
@jhaoda что щас не так?
я завернул как ты сказал
desbiger
@desbiger
Nov 24 2016 11:42
https://gist.github.com/desbiger/0b22bf6af49222af57516a0fe05bb7a2
так?
JhaoDa
@jhaoda
Nov 24 2016 11:44
@desbiger бинго! Ну или оформленной в маркдауне ссылкой тоже можно.
desbiger
@desbiger
Nov 24 2016 11:44
@jhaoda ну слава богу...
короче суть в том что в конструкторе мы определяем к какому контроллеру обратиться исходя из текущей роли пользователя. Дальше получаем вьюху и респонсим ее в одноименном методе, к которому обратился роут. Все методы всех кабинетов должны быть реализованы в базовом и имеют один только код - return $this->render()
а соль всего этого то что в кернеле главное инициализацию сессии перенести на самый верх
иначе в конструкторе пользователь недоступен
есть недостаток данного метода - все контроллеры кабинетов работают просто как класс без подключения посредников и прочих обвесов...но за то при добавлении нового кабинета для новой роли, ни надо ни чего менять... просто создаем в правильном пространстве имен контроллер и реализуем методы..
Andrei Sosnov
@atehnix
Nov 24 2016 11:48
@jhaoda предлагаю ссылку на правила поместить в заголовок чата.
desbiger
@desbiger
Nov 24 2016 11:50
@atehnix уже прочитал
Alexander
@Dualse
Nov 24 2016 11:50
@atehnix :+1:
Andrei Sosnov
@atehnix
Nov 24 2016 11:50
@desbiger :+1: Но не ты первый, не ты последний)
Oleksandr Solodovnikov
@age007nt
Nov 24 2016 11:56
Всем привет! Ребята, есть кто-то, кто использует sleepingOwl + dimsav/laravel-translatable? Может у вас есть примеры как сделать вывод полей для перевода, и запись\обновление?
KarmaBot
@KarmaBot
Nov 24 2016 11:56
@age007nt, и тебе привет ;)
Oleksandr Solodovnikov
@age007nt
Nov 24 2016 11:57
Там вымерли все :(
Vadym Shcherbyna
@vadym-shcherbyna
Nov 24 2016 12:04
Они не вымерли, днем просто спят.
Oleksandr Solodovnikov
@age007nt
Nov 24 2016 12:05
@vadym-shcherbyna точно, они же программисты :)
Vadym Shcherbyna
@vadym-shcherbyna
Nov 24 2016 12:06
@age007nt не поэтому
Oleksandr Solodovnikov
@age007nt
Nov 24 2016 12:07
@vadym-shcherbyna собственно это не особо важно, лишь бы ответили.
Alexander Avakov
@pinguinjkeke
Nov 24 2016 12:52
А после обновления до 5.3 куда делась отправка сообщений о сбросе пароля из трейта ResetsPasswords?
Alexander
@bobrovskikh
Nov 24 2016 12:55
Ребят, что бы Storage::delete('file.jpg'); заработало с папкой public обязательно переопределять в filesystems.php параметр 'root' => storage_path('app'), на 'root' => public_path('app'), или есть иной путь?
Alexander
@bobrovskikh
Nov 24 2016 13:01
Пытался через $disk = Storage::disk('local'); переопределить в $disk = Storage::disk('public'); но чет не так видимо делаю )
разобрался )
Юрий
@sawerus
Nov 24 2016 13:03
@bobrovskikh потому что есть диск public с 'root' => storage_path('app/public')
Alexander
@bobrovskikh
Nov 24 2016 13:03
@sawerus да =) спасибо
KarmaBot
@KarmaBot
Nov 24 2016 13:03
Спасибо (+1) для @sawerus принято! Текущая карма +71.
Anton Kartsev
@bigperson
Nov 24 2016 13:20
Подскажите какой самый оптимальный способ получать текущего авторизированного пользователя в эвентах? через фасад?
JhaoDa
@jhaoda
Nov 24 2016 13:21
@bigperson ты до сих пор не понимаешь, что фасады сами ничего не умеют, а просто проксируют вызов в контейнер?
Anton Kartsev
@bigperson
Nov 24 2016 13:21
@jhaoda увы
JhaoDa
@jhaoda
Nov 24 2016 13:23
@bigperson Illuminate\Contracts\Auth\Authenticatable через DI получать можно. Ну или фасад. Или хелпер. Вариантов вагон и все идентичны
Anton Kartsev
@bigperson
Nov 24 2016 13:36
@jhaoda спасибо
KarmaBot
@KarmaBot
Nov 24 2016 13:36
Спасибо (+1) для @jhaoda принято! Текущая карма +1336.
Ваня Devium
@webdevium
Nov 24 2016 13:53
@jhaoda Темыч, только сильно не кричи. В ларе есть prepared statements с коробки? Не могу найти...(
JhaoDa
@jhaoda
Nov 24 2016 14:00
@webdevium это фича PDO
Ваня Devium
@webdevium
Nov 24 2016 14:01
@jhaoda понял, спасибо
ээээ, кастрюля не работает что ли?
@jhaoda спасибо
Игорь Мандыч
@chiz-developer
Nov 24 2016 15:09
@UnQuaiz о, спасибо, дельный совет! а то я решил проблему добавлением двух полей created & updated_at...хотя тупо так, они же мне не нужны
Привет ну хоть убейте, не могу в доке найти, как обновлять данные по связи hasMany
Есть что-то подобное ->sync()? Или нужно самому вручную удалить имеющиеся данные а потом сохранить новые?
KarmaBot
@KarmaBot
Nov 24 2016 15:12
@chiz-developer, здравствуй.
VaaL2004
@VaaL2004
Nov 24 2016 15:12
Здравствуйте! А в Laravel валидатор русский язык не понимает или я где-то накосячил? Поставил в rules alpha_num, однако он не пропускает поле до тех пор, пока в нем хотя бы один латинский символ не появится. Пытаюсь что-нибудь про поддержку кириллицы нагуглить, не могу ничего найти, как будто такая проблема только у меня появляется...
KarmaBot
@KarmaBot
Nov 24 2016 15:12
Приветствую тебя, @VaaL2004!
Игорь Мандыч
@chiz-developer
Nov 24 2016 15:14
@VaaL2004
"alpha_num
Поле должно содержать только латинские символы и цифры."
@VaaL2004 а вообще, вот я что нагуглил, попробуй создать свое правило
http://stackoverflow.com/questions/37483130/laravel-how-to-validate-cyrillic
VaaL2004
@VaaL2004
Nov 24 2016 15:17
@chiz-developer действительно, тут оплошал, уже сплю похоже. Спасибо огромное! :)
Игорь Мандыч
@chiz-developer
Nov 24 2016 15:18
@VaaL2004 бывает такое....ищешь и не можешь найти, а кто-то другой заходит и за 30 сек находит ответ. И это отнюдь не повод орать, что кто-то не умеет гуглить и т.д.
dskozin
@dskozin
Nov 24 2016 15:18
@chiz-developer ->attach();
Игорь Мандыч
@chiz-developer
Nov 24 2016 15:19
@dskozin он будет работать и для hasMany? в аттач передать массив объектов созданных записей? или просто массив значений?

в данный момент пробую сохранить так

$page = Page::find(4);
$filter = new Pagefilter([ 'name'=> 'city', 'value' => 'London']);
$page->pagefilters()->save($filter);

работает, но добавляет уже к существующим значениям

class Page extends Model
{

    public function pagefilters()
    {
        return $this->hasMany('App\Pagefilter', 'page_id');
    }
}
dskozin
@dskozin
Nov 24 2016 15:23
@chiz-developer Так ты сохраняешь в промежуточную таблицу аттрибуты.
Игорь Мандыч
@chiz-developer
Nov 24 2016 15:24
ну правильно, мне это и нужно @dskozin
@dskozin у меня только 2 таблицы
Pages и Pagefilter (id, page_id, name, value)
dskozin
@dskozin
Nov 24 2016 15:25
@chiz-developer Тогда в >save($filter); первым значением объект который обновляется, вторым новый массив данных.
Снимок_экрана_112416_062550_PM.jpg
Игорь Мандыч
@chiz-developer
Nov 24 2016 15:27
а..это получается у меня типа в промежуточную сохраняются данные......
вот теперь не допру, если я сейчас обновляю запись модели Page, что мне передать первым параметром?
$page = Page::find($id);
$page->name = "new name";

$filter = Pagefilter::get()->where('page_id','=',$id);
$page->pagefilters()->save( $filter , ['name'=>'city', 'value'=>'London']);
Так?
Игорь Мандыч
@chiz-developer
Nov 24 2016 15:39
не-а...
Игорь Мандыч
@chiz-developer
Nov 24 2016 15:45
Argument 1 passed to Illuminate\Database\Eloquent\Relations\HasOneOrMany::save() must be an instance of Illuminate\Database\Eloquent\Model, instance of Illuminate\Database\Query\Builder given, called in /home/chiz/www/server4/www/kredits/app/Http/Controllers/PageController.php on line 35 and defined
DeaDSandro
@DeaDSandro
Nov 24 2016 15:54
$filter = Pagefilter::get()->where('page_id','=',$id);
странная строчка
Игорь Мандыч
@chiz-developer
Nov 24 2016 15:55
        $id = 4;

        $page = Page::find($id);
        $page->name = "new name";

        $filter = new Pagefilter();

        $page->pagefilters()->save( $filter , ['name'=>'city', 'value'=>'London']);

в результате - массив данных не передается(((

General error: 1364 Field 'name' doesn't have a default value (SQL: insert into pagefilters (page_id) values (4))

почему второй параметр save() массив не передается?
Mikhail Volkov
@mvsvolkov
Nov 24 2016 15:57
@chiz-developer save не принимает параметры, а почему не передать параметры при construct
Anton Kartsev
@bigperson
Nov 24 2016 15:58
Снова сталкиваюсь с проблемой большого количества запросов к БД. Теперь проблема следующая. Во вьюхе товары выводятся циклом, в каждом товаре есть проверка политик: @can('order.action', $order) в результате получаю тысячу запросов при попытке отобразить тысячу заказов. Как это можно побороть?
Игорь Мандыч
@chiz-developer
Nov 24 2016 15:58

мне кажется мы уже заехали не туда)
Я хочу не добавить новое значение, хочу отредактировать, обновить. Вот спрашивал, есть для hasMany что-то наподобие ->sync()?

или все же нужно вручную сначала удалить существующие данные из второй таблицые, а потом добавить новые = обновилось

Игорь Мандыч
@chiz-developer
Nov 24 2016 16:07
как вы обновляете данные в pivot table по связи hasMany()? Ларавел - крутая штука, здесь очень много чего уже автоматизировано, вот делаю проект первый на ней и пытаюсь разобраться. Не хочется **внокодить, хотелось бы сразу понять, как правильно все реализовать
Sergey
@UnQuaiz
Nov 24 2016 16:12
@chiz-developer у тебя в модели Pagefilter не указаны поля в $fillable, поэтому он их игнорит
Сергей
@abler98
Nov 24 2016 16:13
Всем привет. Может кто назвать плюсы и минусы такого варианта хранения изображений на сервере?
https://gist.github.com/abler98/ee1b297fcfb8b0006e136ec8c5360e9d
KarmaBot
@KarmaBot
Nov 24 2016 16:13
@abler98, и тебе привет ;)
Игорь Мандыч
@chiz-developer
Nov 24 2016 16:13

@UnQuaiz не, это я обрезал, чтобы тут не хламить

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class Pagefilter extends Model
{
    public $timestamps = false;

    protected $fillable = [
        'name','value'
    ];

    public function page()
    {
        return $this->belongsTo('App\Page');
    }


}

вот так полный вид

KarmaBot
@KarmaBot
Nov 24 2016 16:13
@chiz-developer, чтобы показать длинный листинг кода желательно использовать pastebin-сервис, например gist.github.com или laravel.io/bin.
Atmden
@Atmden
Nov 24 2016 16:14
Всем привет! Подскажите пакет для разграничения прав доступа пользователей. Laratrust нормальный пакет? Или это есть из коробки в 5.3?
KarmaBot
@KarmaBot
Nov 24 2016 16:14
@Atmden даров!
Sergey
@UnQuaiz
Nov 24 2016 16:15
@chiz-developer я ваще не понимаю зачем ты редактируешь через relation. Почему не напрямую в модель не сохраняешь? зачем эти извраты
Atmden
@Atmden
Nov 24 2016 16:15
По сути у меня будет 2 роли.. admin, для sleepingowl и user для профайла
Sergey
@UnQuaiz
Nov 24 2016 16:16
@chiz-developer $page->pagefilters()->save( Pagefilter::create( $attrs) ); не канает ?
Игорь Мандыч
@chiz-developer
Nov 24 2016 16:16
@UnQuaiz говорю же, что пытаюсь разобраться как правильно)
Как правильно обновить? Или в тупую удалить все, где page_id = $id и сохранить новые?
Sergey
@UnQuaiz
Nov 24 2016 16:17
@chiz-developer для начала русским языком скажи что ты делаешь IRL (in real live)
Игорь Мандыч
@chiz-developer
Nov 24 2016 16:17
так это сохранит новые данные? @UnQuaiz
Я уже писал не один раз, что нужно обновить данные в pivot table
Есть две таблицы: pages и фильтры применяемые в этой странице - pagefilters
@abler98 это сохранить новые или обновить? для много-ко-многим есть ->sync, он прекрасно сам удаляет старые, добавляет новые. В один-много нужно вручную удалить старые и добавить новые записи?
JhaoDa
@jhaoda
Nov 24 2016 16:20
@abler98 ссылку заверни
Sergey
@UnQuaiz
Nov 24 2016 16:20
@chiz-developer ты что хочешь с фильтрами то сделать ? что скрывается под "обновить" - изменить поле в фильтрах одной страницы ? или изменить поле в одном фильтре?
Сергей
@abler98
Nov 24 2016 16:21
@jhaoda куда завернуть?
Sergey
@UnQuaiz
Nov 24 2016 16:21
@chiz-developer или ваще поменять фильтры ?
JhaoDa
@jhaoda
Nov 24 2016 16:21
@abler98 в код, как это написано в правилах чата, которые ты должен был прочитать
Сергей
@abler98
Nov 24 2016 16:22
@jhaoda зачем тогда здесь интеграция с gist?
Игорь Мандыч
@chiz-developer
Nov 24 2016 16:22
ну я сейчас делаю функционал редактирования страницы. Соответственно я обновляю данные страницы pages, и обновляю pagefilters. МОжет юзер удалил фильтры, или добавил новые, или обновил старые. В идеале удалил фильтры, добавил новые = обновились данные
JhaoDa
@jhaoda
Nov 24 2016 16:22
@abler98 спроси у сраных хипстеров из гиттера. И я так понял, что правила ты не читал
Sergey
@UnQuaiz
Nov 24 2016 16:25
@chiz-developer ну тогда pagefilters->saveMany( $filters )
Игорь Мандыч
@chiz-developer
Nov 24 2016 16:26
@UnQuaiz так это же опять, добавит к существующим данным? старые автоматически не удалятся?
Sergey
@UnQuaiz
Nov 24 2016 16:26
@chiz-developer проведи эксперемент. этож дело 2 минут
Игорь Мандыч
@chiz-developer
Nov 24 2016 16:26
я именно так добавлял! они к существующим добавляются
Sergey
@UnQuaiz
Nov 24 2016 16:27
ща попробую
Игорь Мандыч
@chiz-developer
Nov 24 2016 16:27
а как синхронизировать? в общем кажись никак. тупо удалить те, что уже есть и добавить новые
$filters = [];
foreach( $request->filters as $pf){

     $filters[] = new Pagefilter(['name'=>$pf['name'], 'value'=>$pf['value'] ]);

}
$item->pagefilters()->saveMany($filters);
Сергей
@abler98
Nov 24 2016 16:50
Ну лично я делаю примерно вот так:
            if ($addresses = $request->input('address')) {
                $user->addresses()->delete();
                $user->addresses()->createMany($addresses);
            }
Вроде как не сложно прописать одну строку для удаления старых записей
Sergey
@UnQuaiz
Nov 24 2016 16:58
@abler98 а если к ним привязаны другие таблицы ? у тебя id потекут. если внешний ключ будет - просто не даст удалить
@chiz-developer сорян... я уже сплю завтра утром поковыряюсь, напишу
Игорь Мандыч
@chiz-developer
Nov 24 2016 17:00
не, у меня к pagefilters ничего больше не привязано. Только pages. Вариант @abler98 подойдет. Короче, как я и говорил
Sergey
@UnQuaiz
Nov 24 2016 17:01
@chiz-developer вариант конечно, но не совсем тру
Игорь Мандыч
@chiz-developer
Nov 24 2016 17:01
@UnQuaiz если будет еще какой-то более правильный вариант, пиши) я всегда против кривокода
Sergey
@UnQuaiz
Nov 24 2016 17:03
по seo кто нибудь упарывается ? использовали artesaos/seotools ?
для дебагбара родился пакет с коллектором мета-данных страницы. скоро в репозиторий закину, хотелось бы мнения услышать
Игорь Мандыч
@chiz-developer
Nov 24 2016 17:20
раньше не видал, почитал, вроде полезная вещька @UnQuaiz
E.Wolf
@wolf-alone
Nov 24 2016 17:34
Коллеги, доброго времени суток! Не хочет работать __call();в контроллере. У кого-нибудь есть идеи, как ещё реализовать перегрузку?
KarmaBot
@KarmaBot
Nov 24 2016 17:34
Будь как дома, @wolf-alone, я ни в чем не откажу. Много мануалов, коль желаешь, покажу :)
Dave
@aios
Nov 24 2016 17:41
@wolf-alone перегрузка в контроллере? воу - с какой целью то?
E.Wolf
@wolf-alone
Nov 24 2016 17:42
@aios нет желания плодить 200 классов (контроллеров), с одинаковыми методами, в которых отличается только тип одного входного параметра
Dave
@aios
Nov 24 2016 17:42
@wolf-alone сделай контроллер наследуемый
и от него наследуй нужные тебе
зачем изврат с __call()
E.Wolf
@wolf-alone
Nov 24 2016 17:43
@aios я так и сделал, но входные параметры то разного типа
Dave
@aios
Nov 24 2016 17:43
@wolf-alone ...
E.Wolf
@wolf-alone
Nov 24 2016 17:43
@aios и ПХП сказал, куда я могу идти, по причине того, что тип входных параметров отличен
Dave
@aios
Nov 24 2016 17:43
...$args
не?
E.Wolf
@wolf-alone
Nov 24 2016 17:44
@aios а поточнее?
Atmden
@Atmden
Nov 24 2016 17:45
мужики а мне кто ни-будь поможет? Даст ответ?
Всем привет! Подскажите пакет для разграничения прав доступа пользователей. Laratrust нормальный пакет? Или это есть из коробки в 5.3? По сути у меня будет 2 роли.. admin, для sleepingowl и user для профайла
KarmaBot
@KarmaBot
Nov 24 2016 17:45
Будь как дома, @Atmden, я ни в чем не откажу. Много мануалов, коль желаешь, покажу :)
Dave
@aios
Nov 24 2016 17:45
@Atmden я юзаю этот пакет
вроде ничего
это форк Zizaco/Entrust
вроде ничего сверх
Но доработок уйма
E.Wolf
@wolf-alone
Nov 24 2016 17:46
по первой ссылке - входные параметры при выполнении скрипта в CLI-режиме, не понимаю к чему это :) @aios
Dave
@aios
Nov 24 2016 17:46
@wolf-alone в функцию можно передавать параметры через три точки
работает как JS
Atmden
@Atmden
Nov 24 2016 17:47
@aios Доработок уйма - это в laratrust? Или надо их самому делать?
Dave
@aios
Nov 24 2016 17:47
@Atmden ну лучше Trait переделать.
потому что detachRole( Role::where('name', $nameRole)->first())
Это изврат
хочется detachRole($roleName)
ну точнее я переделал)
Atmden
@Atmden
Nov 24 2016 17:48
))) понятно...
@aios спасибо за ответ
KarmaBot
@KarmaBot
Nov 24 2016 17:48
Спасибо (+1) для @aios принято! Текущая карма +275.
Alexander
@bobrovskikh
Nov 24 2016 18:05
Подскажите куда копать для дружелюбной массовой загрузки фотографий ajax'ом? Какой плагин стоит рассмотреть?
Игорь Мандыч
@chiz-developer
Nov 24 2016 18:07
Alexander
@bobrovskikh
Nov 24 2016 18:12
@chiz-developer видимо судьба, сидел его разглядывал :) спасибо
Игорь Мандыч
@chiz-developer
Nov 24 2016 18:13
@bobrovskikh вроде не плохой, напильнику поддается без напряга)
DeaDSandro
@DeaDSandro
Nov 24 2016 18:15
а он разве не был платным? @chiz-developer
Игорь Мандыч
@chiz-developer
Nov 24 2016 18:17
DeaDSandro
@DeaDSandro
Nov 24 2016 18:17
я вижу, что сейчас MIT
Игорь Мандыч
@chiz-developer
Nov 24 2016 18:17
хотя в начале у меня было подозрение, что он платный (был)
DeaDSandro
@DeaDSandro
Nov 24 2016 18:17
с полгода назад лицензия другая была, только для опенсорса вроде бесплатно "давали пользоваться"
@bobrovskikh подтверждаю, что крутая штука )
Игорь Мандыч
@chiz-developer
Nov 24 2016 18:19
эх помню времена, когда аплоад без перезагрузки можно было сделать через кривой uploadify, который к тому же еще и флеш использовал.........
Kirill Nesmeyanov
@SerafimArts
Nov 24 2016 18:20
@chiz-developer ну так сейчас всего 2 строки на чистом js
Alexander
@bobrovskikh
Nov 24 2016 18:20
Вот еще вроде приятный http://www.dropzonejs.com
Dave
@aios
Nov 24 2016 18:21
@bobrovskikh вот этот самый оптимальный
его можно кастомить до потери пульса
Kirill Nesmeyanov
@SerafimArts
Nov 24 2016 18:21
а некоторые до сих пор пользуют всякие плагины...
DeaDSandro
@DeaDSandro
Nov 24 2016 18:22
@SerafimArts fine uploader много чего умеет, просто отправить много файлов одно
Kirill Nesmeyanov
@SerafimArts
Nov 24 2016 18:22
fetch('...', { body: new FormData('#id') })
DeaDSandro
@DeaDSandro
Nov 24 2016 18:22
там драг дроп, превью + бэкенд готовый есть
Kirill Nesmeyanov
@SerafimArts
Nov 24 2016 18:23
превью еще две строчки
и драг н дроп около 10
DeaDSandro
@DeaDSandro
Nov 24 2016 18:23
http://fineuploader.com/ посмотри Feature Comparison
Kirill Nesmeyanov
@SerafimArts
Nov 24 2016 18:23
вру, перехват эвента и всё
одна
прогресс - тоже две
а вот валидатор, да, долго
согласен, есть смысл
DeaDSandro
@DeaDSandro
Nov 24 2016 18:25
в-общем там уже все собрано вместе ) велосипедостроением заниматься можно, но зачем
если "только X или только Y фича" - то да, плагин подключать нет смысла, а если все вместе - то уже быстрее с ним
E.Wolf
@wolf-alone
Nov 24 2016 18:26
@aios спасибо за мысль, никак не доберусь проверить...
KarmaBot
@KarmaBot
Nov 24 2016 18:26
Спасибо (+1) для @aios принято! Текущая карма +276.
JhaoDa
@jhaoda
Nov 24 2016 18:28
140 килобайт минифицированного кода для загрузки файлов... да у меня все скрипты на сайте весят в сыром виде меньше в 10 раз
DeaDSandro
@DeaDSandro
Nov 24 2016 18:30
@jhaoda скрипты без jquery ? )
Игорь Мандыч
@chiz-developer
Nov 24 2016 18:30
вроде вопрос не стоял: дайте самый легкий uploader файлов)
JhaoDa
@jhaoda
Nov 24 2016 18:30
@chiz-developer речь не про лёгкость, а про целесообразность
Игорь Мандыч
@chiz-developer
Nov 24 2016 18:31
@jhaoda в твоих словах есть логика, нет спора. Человеку дали варианты, ему выбирать)
JhaoDa
@jhaoda
Nov 24 2016 18:31
@DeaDSandro жыкверя из cdn, не в счет
DeaDSandro
@DeaDSandro
Nov 24 2016 18:31
@jhaoda ага.. уже вот "исключения из правил" )
JhaoDa
@jhaoda
Nov 24 2016 18:32
@DeaDSandro ну если эта либа будет в cdn, то готов исключить. Но её ведь там нет...
пожалуйста)
JhaoDa
@jhaoda
Nov 24 2016 18:33
@DeaDSandro пфффф, подключать N файлов, где N в районе 10?
Игорь Мандыч
@chiz-developer
Nov 24 2016 18:34
тю....а из cdn загрузка не идет? какая разница, что локально, что cdn...все равно будет страничку грузить**
хотя мне кажется 140 кб - это не так и много...если еще и кешировать его
DeaDSandro
@DeaDSandro
Nov 24 2016 18:34
стили можешь не подключать) это уже от задач зависит
40 кб гзипа, уже норм?)
JhaoDa
@jhaoda
Nov 24 2016 18:37
@DeaDSandro хотел написать, что почти убедил, потом проверил время отдачи. Не убедил :)
@jhaoda повторю вопрос чуть по другому, 40 кб для тебя тоже много?)
JhaoDa
@jhaoda
Nov 24 2016 18:38
@DeaDSandro 1,2 секунды ответа много
DeaDSandro
@DeaDSandro
Nov 24 2016 18:38
jquery 30кб сжатый гзип
36 мс у меня
кэш выключен
повтори замеры
JhaoDa
@jhaoda
Nov 24 2016 18:39
@DeaDSandro ты где живешь?
DeaDSandro
@DeaDSandro
Nov 24 2016 18:39
@jhaoda при повторном замере та же ситуация?
у меня первый запрос - около секунды, повтор 30-40мс. кэш выключен
JhaoDa
@jhaoda
Nov 24 2016 18:41
@DeaDSandro :point_up: 25 ноября 2016 г., 01:39
DeaDSandro
@DeaDSandro
Nov 24 2016 18:41
я специально задал вопрос, жду ответа, если повторного замера не было, то это не имеет значения +)
JhaoDa
@jhaoda
Nov 24 2016 18:42
@DeaDSandro ну какбэ если бы что-то поменялось, то я бы ответил. Всё так же 1-1,2.
Учитывая, что это CF, то все возможно. Роскомпозор, известные у CF заморочки с IP разных регионов...
DeaDSandro
@DeaDSandro
Nov 24 2016 18:43
ок, тебя страна интересует или конкретнее?
JhaoDa
@jhaoda
Nov 24 2016 18:43
@DeaDSandro ну если не Россия, то город не важен
DeaDSandro
@DeaDSandro
Nov 24 2016 18:44
Россия, Казань
и я повторю еще один вопрос. 40 кб для тебя тоже много?
и уточнение - предположим тебе нужна половина возможностей это библиотеки
JhaoDa
@jhaoda
Nov 24 2016 18:47
@DeaDSandro какие 40, когда 54 и превратятся они в 200 после распаковки?
А, мы неожиданно перешли от загрузчика к жыквери...а, это я смотрел нативный вариант
DeaDSandro
@DeaDSandro
Nov 24 2016 18:49
у меня 40 кб гзип, и я говорю про file uploader все еще. какая разница во сколько кб он превратится после распаковки, тебя же смущает, что 200 кб будут летать по сети
JhaoDa
@jhaoda
Nov 24 2016 18:49
@DeaDSandro нет, меня не 140 кило по сети смущают, а то, что это браузер переваривать будет
DeaDSandro
@DeaDSandro
Nov 24 2016 18:57
я могу провести аналогию с тем же jquery (90 кб минифицированного кода, из которых сколько обычно используется? селекторы, да hide с animate в большинстве сайтов в интернете) или например с реактом (те же самые 140 кб, но какая разница, если мы используем его например только для того, чтобы вывести имя юзера где-нибудь в меню), но не вижу особого смысла. тут весь вопрос, для чего тебе библиотека, если для 1% ее возможностей - то это избыточное решение. если 40-50+% - то почему бы и да. предлагаю зарыть топор войны =)
Kirill Nesmeyanov
@SerafimArts
Nov 24 2016 18:59
да хрень всё это, никому это погоду не сделает особо
просто когда набирается в проекте таких 10 фич, это уже полтора мегабайта
а вот это уже реально аргумент
так что я привык таскать лишь то, что реально долго и муторно писать, а на подобные фичи на 10 минут работы - можно и потратиться
JhaoDa
@jhaoda
Nov 24 2016 19:00
У нас в одном проекте на 3М набралось, пришлось делить
DeaDSandro
@DeaDSandro
Nov 24 2016 19:04
@jhaoda наверно тоже плагинов большая часть ? =)
JhaoDa
@jhaoda
Nov 24 2016 19:06
@DeaDSandro не совсем, это БЭМ
Maxim
@Big-Shark
Nov 24 2016 22:16
карма
KarmaBot
@KarmaBot
Nov 24 2016 22:16
@Big-Shark, Ваша карма +913. Вы благодарили 163 раз.
  • Достижения: "Находчивый", "Любитель сладкого", "Благодетель", "Благодарный", "Нахлебник", "Рэмбо", "Вопрошайка", "Красавчик"
shturnev
@shturnev
Nov 24 2016 22:34

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

Model::create(["bla => bla"], ["bla" => "bla"]); выдаёт ошибку.. :/
как правильно подскажите пожалуйста?

текст ошибки

at preg_match('/^(\d{4})-(\d{1,2})-(\d{1,2})$/', array('house_id' => '4', 'item_name' => 'nostrum', 'item_value' => '9')) in Model.php line 2984

KarmaBot
@KarmaBot
Nov 24 2016 22:34
Прувет, @shturnev!
Arsen Soroka
@arsen-s
Nov 24 2016 22:37
@shturnev insert попробуй
shturnev
@shturnev
Nov 24 2016 22:37
@arsen-s не через Eloquent а DB?
@arsen-s да через query builder получается, а если через Eloquent? можно ли так вообще?
Andrei Sosnov
@atehnix
Nov 24 2016 22:40
@shturnev Eloquent не имеет возможности множественной вставки.
Arsen Soroka
@arsen-s
Nov 24 2016 22:40
@shturnev
User::insert([['email'  => 'email1'], ['email' => 'email2'])
Andrei Sosnov
@atehnix
Nov 24 2016 22:41
@shturnev поэтому, либо в цикле, либо insert через DB.
Arsen Soroka
@arsen-s
Nov 24 2016 22:42
@atehnix как это не имеет? у меня вроде работает
Andrei Sosnov
@atehnix
Nov 24 2016 22:42
@arsen-s это отрабатывает квери билдер, а не элоквент.
JhaoDa
@jhaoda
Nov 24 2016 22:42
@arsen-s а insert это метод элоквент?
Arsen Soroka
@arsen-s
Nov 24 2016 22:43
я так понимаю человек хотел сделать через модель, а не через DB::...
shturnev
@shturnev
Nov 24 2016 22:43
@arsen-s @atehnix спасибо, буду пробовать
KarmaBot
@KarmaBot
Nov 24 2016 22:43
Спасибо (+1) для @arsen-s принято! Текущая карма +133.
Спасибо (+1) для @atehnix принято! Текущая карма +168.
JhaoDa
@jhaoda
Nov 24 2016 22:44
@arsen-s ну если он писал про метод create, то очевидно, что хотел через модель :)
shturnev
@shturnev
Nov 24 2016 22:47
вообщем через insert заработало... но теперь обязательно вручную добавлять created_at & updated_at
Arsen Soroka
@arsen-s
Nov 24 2016 22:48
@shturnev если не много записей то вставляй через цикл
или к массиву дату атачни