🤫
Функция getsv?
Serhii
fgetcsv
Serhii
http://php.net/manual/en/function.fgetcsv.php
🤫
Ну я уже импортнул в массив...но нужна же валидация там проверка какая-нибудь соответствует ли файл ...не внесли ручками данные
🤫
Фэйловые
Serhii
ну так лол
Serhii
только Брюс Всемогущий может знать, какая именно валидация тебе нужна
Serhii
юзай трим, обрезай что тебе надо или проверяй
Serhii
цсв как ты генеришь?
Serhii
явно кто-то руками записывает при любых или скрипт написан который тянет данные с бд с другой системы
Serhii
проверка на файл?
Serhii
наппиши иф
Serhii
получится что напишешь целый скриптец с обработками, валидацией
Serhii
и импортом в бд
Serhii
это же кастомная фигня
🤫
цсв приходит извне
🤫
на файл проверил
🤫
осталось именно правильность записей в файле
🤫
есть массив...получается просто перебиратьего и в foreach пихать...только так
🤫
и каждое значение проверять
🤫
по другому так понимаю никак
🤫
привет всем. нужна помощь...не могу понять почему вставляется только 1 строка в бд.
$folder = $this->getContainer()->getParameter('kernel.root_dir').'/../data/';
$obj = new Tblproductdata();
if (($handle = fopen($folder.$this->file, "r")) !== FALSE) {
$row = 0;
while (($dataBlocks[] = fgetcsv($handle, 1000, ",")) !== FALSE) {
}
$count = count($dataBlocks);
foreach ($dataBlocks as $i => $dataBlock) {
if (0 == $i) continue;
if ($count == $i) continue;
$obj->setStrProductName($dataBlock[1]);
$obj->setStrProductDesc($dataBlock[2]);
$obj->setStrProductCode($dataBlock[0]);
$obj->setDtMadded();
$obj->setStock('dfs');//$dataBlock[3]);
$obj->setCost(12);//$dataBlock[4]);
$obj->setDtmDiscontinued();
$obj->setStmTimestamp();
$this->em->persist($obj);
if (0 === ($i % self::BATCH_SIZE)) {
$this->em->flush();
$this->em->clear();
}
}
;
}
fclose($handle);
}
🤫
это код метода
🤫
вставляется только с 21 строки
🤫
вот цсв
🤫
Елнур
В каждом цикле вы должны создавать объект заново, или делать клон и очищать id
🤫
объект понятно...а что значит делать клон и очищать id?
Елнур
а вы создаете объект до цикла, и каждый раз сохраняете один и тот же объект
Елнур
создавать объект, значит: $obj = new productdata; а клон: $obj = clone $obj;
Елнур
🤫
ага...спасибо
🤫
теперь понял
Елнур
но при клонировании нужно сделать id = null внутри объекта
🤫
интересно...так по идее сохранялась в бд только первая строка...а сохраняется 21
Кирилл
потому что flush у вас в момент достижения batchsize
Елнур
Кирилл
который видимо равен 20
Serezha
Народ, посоветуйте по архитектуре. У меня есть много разных видов контента - новости, блог, статьи - все это отдельные Entity + Repository
Serezha
Но я хочу хранить лайки для всех видов контента в одной обще табличке
Serezha
Только не пойму, как замутить метод getLikes для конкретной сущности, получается нужно сделать виртуальное поле и что-то вроде DQL запроса из сущности ?
Serezha
Елнур
🤫
@urazymbetov спасибо. Разобрался.
Serezha
Елнур
да
Елнур
Похоже только так. "Склеивать" новости и лайки отдельным методом из репозитория
что то вроде этого:
public function getLikes($contentType, $contentId)
{
$this->createQueryBuilder('l')
->andWhere('l.content_type = :content_type')
->setParameter('content_type', $contentType)
->andWhere('l.content_id = :content_id')
->setParameter('content_id', $contentId)
->orderBy('l.createdAt', 'DESC')
}
и в контроллере:
$this->getDoctrine()->getManager()->getRepository('Likes')->getLikes('news', $news->getId());
Ivan
Ребята
Ivan
спасайте
Ivan
Ivan
вот у меня в таком куске вода, с помощью сонаты строятся таблицы
Ivan
записи в которых я могу редактировать, удалять и добавлять,
но вот проблема, оно везде строится по полю name
Ivan
я не знаю как добавить колонки
Serezha
из этого куска кода не могут строиться таблицы
Ivan
это кусок конфига
Ivan
хорошо, как мне добавить коллонки к моим таблицам?
Serezha
к таблицам БД или Соната Админ?
Ivan
Ivan
вот тут, у меня в БД 5 колонок
а выводит только нейм
Ivan
где это изменить?
Alexander
в админ классе configureListFields
Serezha
https://sonata-project.org/bundles/doctrine-orm-admin/2-0/doc/reference/list_field_definition.html
Ivan
спасибо огромное)
Ivan
а есть возможность подтянуть поля с сущности?
erkash
Ivan
я же не знаю как это делать)
erkash
Ivan
Ivan
вот таким вот способом прописываются поля чтобы захардкодить и они будут для всех одинаковые, разве нет?
Ivan
а у меня то поля разные для разных таблиц
еще я не понимаю откуда PostAdmin и MediaAdmin взялись
erkash
а у меня то поля разные для разных таблиц
ну так вытаскивай свои поля)) в чем проблема то не пойму тебя
Ivan
если в user поля задаются явно, а мне нужно его как-то вытягивать с сущностей
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper ->add('id')
->add('name', TextType::class);
}
Ivan
тыкните носом пожалуйста, какой кусок кода вытаскивает поля с сущностей сам, и к нужной таблице сам их подставляет
Ivan
чтобы листмапер сам себе набирал нужные поля
erkash
так стоп 🛑
erkash
у тебя сколько сущностей есть?
Ivan
3