
Виктор
31.05.2018
18:08:53
Даже, только хранение персональной информации обязывает иметь такого специалиста. На деле, на это конечно забивают, в лучшем случае все правильно на бумаге.

Slava
31.05.2018
19:59:52
Что за бред про безопасников)) при чем тут вообще компосер, особенно без лока?)

Roman
31.05.2018
20:21:48
Хочу посмотреть на СБ, которые оттслеживают каждый апдейт серьёзного npm пакета

Эмин
01.06.2018
01:54:15
Про композер без лок файла конечно отдельно улыбнуло. Сразу видно, специалист :)

Google

Eugene
01.06.2018
02:47:39
Ребята, подскажите пожалуйста, почему могут данные исчезать из базы, после того как я их сохранил? Это может быть как то с кодом связанно? Человек сделал запись на несколько дат вперед, а затем, спустя какое то время, этих данных в таблице не стало, осталось только одна из 4 сохраненных. В чем может быть дело?
Сохраняю просто:
$model->validate(); $model->save();
при чем это проявляется не постоянно, а через раз, не знаю с чем связанно может быть?

Эмин
01.06.2018
03:50:39
слишком мало информации что бы ответить на ваш вопрос
конечно это может быть связано с кодом
и с самими данными, например не прошла валидация и модель не сохранилась
либо при сохранении упала база
либо у вас какой то крон очистил данные
да что угодно может быть :)

Максим
01.06.2018
04:09:42

Eugene
01.06.2018
04:18:06
да что угодно может быть :)
https://implode.io/zjznHG вот здесь я представил 3 функции которые у меня отвечают за сохранение данных в базу) один основной метод (внизу) и два выше, которые ему с этим помогают

Максим
01.06.2018
04:27:25

Google

Максим
01.06.2018
04:28:06

Eugene
01.06.2018
04:28:26
данные по сути однородные, но почему то, то работает, то - нет. Мне говорят "исправляй", а я понятия не имею что не так
Грешу на вот эту строчку `$model::deleteAll(["FROM_UNIXTIME(cdate_int, '%Y')"
=> date("Y", $newsM->cdate_int),
"day" => date('j', mktime(0, 0, 0, date('m', $newsM->cdate_int), date('d', $newsM->cdate_int), date('Y', $newsM->cdate_int)))]);"` она должна удалять все данные из таблицы за указанный, год этот делает mktime, но непонятно, как mktime может сделать несколько одинаковых дат, если я убрал и секунду и минуты и часы


Максим
01.06.2018
04:48:42
Грешу на вот эту строчку `$model::deleteAll(["FROM_UNIXTIME(cdate_int, '%Y')"
=> date("Y", $newsM->cdate_int),
"day" => date('j', mktime(0, 0, 0, date('m', $newsM->cdate_int), date('d', $newsM->cdate_int), date('Y', $newsM->cdate_int)))]);"` она должна удалять все данные из таблицы за указанный, год этот делает mktime, но непонятно, как mktime может сделать несколько одинаковых дат, если я убрал и секунду и минуты и часы
В базе есть колонка с номером года?

Eugene
01.06.2018
04:49:45

Максим
01.06.2018
04:50:27
Как раз не надо такую колонку делать

Eugene
01.06.2018
04:50:34
Хорошо)
есть отдельные колонки для дня и месяца, но они повсюду используются и очень нужны

Максим
01.06.2018
04:51:03
Просто в метод передашь примерно так
2018 => 2018
Первый параметр зачем там нужен? У него ключом является не колонка, а ее значение

Eugene
01.06.2018
04:52:01

Максим
01.06.2018
04:52:51
"FROM_UNIXTIME(cdate_int, '%Y')" => date("Y", $newsM->cdate_int)
Эта часть
Странная конструкция как по мне)
Но по идее она просто года сравнивает, и если они не совпадают, то строки не затрагиваются

Eugene
01.06.2018
04:55:52

Максим
01.06.2018
04:56:18

Google

Eugene
01.06.2018
04:59:04
берет её время и удаляет запись)
А почему из другой таблицы? Интересно как

Максим
01.06.2018
05:00:09
А дату можно без mktime делать, например, date('Y-m-d 00:00:00', time())

Eugene
01.06.2018
05:01:44
Сейчас пофикшу, а то ерунда какая то

Максим
01.06.2018
05:02:55

Eugene
01.06.2018
05:03:06

Максим
01.06.2018
05:03:43
Зачем хранить даты в разных форматах чтобы их потом конвертировать)
Храни в timestamp тогда between можно делать проще или указать дату без часов минут и секунд

Eugene
01.06.2018
05:05:09

Максим
01.06.2018
05:09:06
Я про cdate_int

Виктор
01.06.2018
05:36:48

Eugene
01.06.2018
05:41:05
Я про cdate_int
https://implode.io/zjznHG переписал последнюю функцию, не могли бы Вы подсказать, есть какие то очевидные замечания там? Мб упустил что то

Виктор
01.06.2018
05:50:07

Eugene
01.06.2018
05:50:31
там просто несколько условий стоит)

Google

Виктор
01.06.2018
05:51:16
$newsM = News::findOne(["id" => $id]);
Например

Eugene
01.06.2018
05:52:13
а, пустоту передать нельзя, на клиенте проверка стоит, если не выбрано ничего, то кнопку "сохранить" нельзя нажать)

Виктор
01.06.2018
05:53:34
А если 2 человека работает, один удалил, второй сохранил)
Все передалось, но записи уже нет)

Eugene
01.06.2018
06:00:33

Максим
01.06.2018
06:01:13
вот эта часть тоже вызывает вопросы
public function editItems() {
$editNews = Yii::$app->request->post('ThisDay');
foreach ($editNews["news_name"] as $year => $name) {
$result[] = $name;
}
return $result;
}
что будет, если $editNews не массив или в нем нет элемента с ключом news_name

Eugene
01.06.2018
06:02:35

Максим
01.06.2018
06:03:44
всегда надо проверять данные перед использованием. Массив ли? если должно прийти число, сделай intval
вместо
$model = ThisDay::findOne(['id_news' => $id]);
надо
$id = intval($id);
$model = ThisDay::findOne(['id_news' => $id]);
и в модели наверное не надо работать с реквестом. получай его в контроллере и передавай в модель. я про метод public function editItems()

Admin
ERROR: S client not available

Максим
01.06.2018
06:06:37
вместо
public function editItems() {
$editNews = Yii::$app->request->post('ThisDay');
foreach ($editNews["news_name"] as $year => $name) {
$result[] = $name;
}
return $result;
}
лучше на мой взгляд будет
public function editItems($editNews) {
$result = [];
if(is_array($editNews) && isset($editNews["news_name"])) {
foreach ($editNews["news_name"] as $name) {
$result[] = $name;
}
}
return $result;
}
соответственно, проверять в методе validateEdit() пришел ли пустой массив или нет

Eugene
01.06.2018
06:08:29

Максим
01.06.2018
06:09:12
жуликов хватает, надо все перепроверять и юзерам не доверять)

Eugene
01.06.2018
06:10:41

Константин
01.06.2018
06:11:43
Объясните пожалуйста что я сделал не так что у меня выводится такая ошибка? - PHP User Error – yii\base\ErrorException
EditController module does not exist

Максим
01.06.2018
06:12:51
в тексте ошибки же написано. ищи где его подключал или где надо подключить, и подключи

Google

Константин
01.06.2018
06:15:22
Ну так я его не создавал никогда и сам его нигде не использую
in D:\OpenServer\OSPanel\domains\Yii2\vendor\ezyang\htmlpurifier\library\HTMLPurifier\HTMLModuleManager.php
Я его не подключал

Eugene
01.06.2018
06:19:06

Константин
01.06.2018
06:19:55
Это как?

Eugene
01.06.2018
06:20:09

Константин
01.06.2018
06:20:27
когда нажимаю Time
Memory
у меня просто один контроллер грузится непростительно долго

Eugene
01.06.2018
06:21:05

Константин
01.06.2018
06:21:14
Я пытаюсь выяснить причину

Максим
01.06.2018
06:22:28
162 милисекунды это совсем не долго

Константин
01.06.2018
06:22:40
тыркнул на значения 3 сек

Максим
01.06.2018
06:22:51
покажи код profile/update

Константин
01.06.2018
06:23:21
Это не он грузится долго

Максим
01.06.2018
06:24:13

Константин
01.06.2018
06:24:15

Максим
01.06.2018
06:24:41
покажи весь скрин с ошибками, ниже прокрути

Константин
01.06.2018
06:25:26
https://pastebin.com/xDAjLzuz
Это код ProfileController
Так