Oleg
да прибудет счастье в твой комп
Mykola
но тогда нет смысла в user_id столбце.
Oleg
ну тут уже от логики зависит
Mykola
Он всегда будет указывать на последнего лайкнувшего юзера
Oleg
может один и тот же юзер может лайкать больше одного раза
Mykola
ага.. ну тогда и counter_likes обретает смысл)
Oleg
щас всю структуру сайта поменяем к какой-нибудь бабушке =))))))
darkwoolf
может один и тот же юзер может лайкать больше одного раза
Суть в том чтобы сделать чтобы каждый мог лайкнуть только 1 раз
Oleg
Тогда зачем counter_likes?
Oleg
если там всегда будет один
darkwoolf
Ну нужно чтобы было не 1
darkwoolf
На число лайков
Oleg
как там может не один, если суть чтоб только один раз лайкнул
Oleg
у тебя в таблице можно это поле убирать
Oleg
делать поиск по связке пост+юзер, если есть такое - то нельзя больше лайкать
darkwoolf
Крч, суть в том чтобы сделать лайки
Oleg
убирай поле counter_likes
Oleg
и надо строку поиска поменять
Oleg
$like = $this->getDoctrine()->getRepository('AppBundle:Likes')->findOne(['post' => $post, 'user' => $user);
Oleg
дальше, если ничего не нашел - создаешь
Oleg
если нашел - шлеш лайкера подальше
darkwoolf
ДА, а как тогда выводить число лайков если нету поля которое ты сказал мне удалить(counter_likes)
darkwoolf
?
Oleg
по кол-во записей
Oleg
COUNT(id) WHERE post = 1
Oleg
а если лайков много предвидется, то вообще вынести в отдельную таблицу кол-во лайков
Oleg
а эту использовать только для проверки возможности лайка
Oleg
да даже если мало лайков, все равно надо создать одну таблицу для общего кол-во лайков по постам
darkwoolf
Что-то жёстко, но ладно...Буду разбираться
darkwoolf
Примерно идею понял
Oleg
хорошо, спрашивай если что
darkwoolf
Спасибо)
Anonymous
А сессии писать лайковших не ?
Oleg
А когда сессия сбросится я могу снова лайкнуть?
Misha
привет, может кто-то сможет подсказать Behat + Selenium on SF4 Flex, указал тестовую БД отдельно в test/doctrine.yaml, в конфигах behat.yaml под тоже test, с FetauresContext данные записываются в тестовую БД норм, но селениум в браузере запускает версию с данными из prod. Может подскажете куда смотреть, где настроить?
Stas
в sf2 пробрасывал %test_base_url% (урл, который работает в test env) в качестве параметра для Mink в FeatureContext::beforeScenario() для нужного мне сьюта
Stas
ну смотря как он у вас запускает апп. у меня просто standalone.jar + chrome driver
Misha
точно также, тем более в контекст добавляется кернел тест
Misha
extensions: Behat\Symfony2Extension: kernel: env: "test" debug: "true"
Misha
примерно как тут сделал https://github.com/api-platform/demo/blob/master/behat.yml
Misha
но тут без селениума
Alexander
Всем привет Может кто подсказать... разбираюсь с symfony, сделал блог, но теперь надо с Sanata Admin Bundle разобраться и привязать к сайту. По мануалу (https://symfony.com/doc/current/bundles/SonataAdminBundle/getting_started/creating_an_admin.html) не получается так как entity уже создан до этого, и репозиторий есть, потому подойдя на этап когда в сервисах нужно добавить - ошибка "The service "admin.blog" has a dependency on a non-existent service "sonata.admin.manager.orm"." Сама запись в сервисах "admin.blog: class: Blogger \ BlogBundle \ Admin \ BlogAdmin arguments: [~, Blogger \ BlogBundle \ Entity \ Blog, ~] tags: - {name: sonata.admin, manager_type: orm, label: Blog} public: true" Где то явно напортачил, где понять сложно..
Stas
попробуй заюзать исиадмин
Alexander
Был бы выбор, а так он ограничен) По работе разбираюсь, часто придется сталкиваться с ней и symfony
Anonymous
app/console fos:user:create --super-admin
Serhii
дома есть готовый проект с сонатой, если не решишь проблему, вечером гляну
Serhii
сейчас easy admin просто юзаю
Alexander
Kenan, FOS не ставил Пока в основном ругается на не правильную запись в сервисах, нашел пример (http://devacademy.ru/posts/symfony-2-joboard-interfejs-administratora/) по нему тоже не работает, сверился, немного где поправил - и итог один. Устанавливал по сути как тут и описано, не первый день бьюсь с этим
Alexander
FOS и создание юзера не помогло в итоге
darkwoolf
А сессии писать лайковших не ?
Я пока что не на 100 проц понимаю как это реализовать
darkwoolf
хорошо, спрашивай если что
А какие должны быть связи у лайков и юзеров
darkwoolf
ТО есть один юзер может иметь много лайков, но при это в одном посте только по одному лайку
Oleg
А ты о какой таблице говоришь?
Oleg
Если хочешь, я тебе завтра никадаю сущности как надо
darkwoolf
Было бы не плохо
darkwoolf
А ты о какой таблице говоришь?
Ну ты говорил что нужно 3 таблицы
Alexander
Точно, спасибо большое
Dmitriy
рад был помочь)
Anonymous
Всем привет) Есть задача - установить symfony и sonata. Установка symfony проходит успешно, после установки и настройки sonata страница выводит сообщение, что нет роута для GET "/" Решил, что может для sonata возможно нужен хотя бы единственный контроллер, снёс всё, установил заново на всякий случай. Пользуюсь XAMPP Но в итоге даже самый простой контроллер создать не удалось) Может, подскажет кто-нибудь, в чем ошибка? Вот что я делаю: Разворачиваю symfony, стандартная страница работает Устанавливаю doctrine Создаю базу, подключаю в .env Настраиваю виртуальный хост, чтобы по localhost кидало сразу на public Захожу в config/routes.yaml - там уже есть закомментированный роут, раскомментирую. ******** index: path: / controller: App\Controller\DefaultController::index ******** Создаю в папке src/Controller файл с именем DefaultController.php ******** <? namespace App\Controller; use Symfony\Component\HttpFoundation\Response; class DefaultController { public function index() { $number = mt_rand(0, 100); return new Response( '<html><body>Lucky number: '.$number.'</body></html>' ); } } ?> ******* Контроллер взял из оф. документации В итоге выводится такая ошибка: ******* (2/2) FileLoaderLoadException The autoloader expected class "App\Controller\DefaultController" to be defined in file "D:\Programming\xampp\htdocs\symfony\symfony4\vendor\composer/../../src\Controller\DefaultController.php". The file was found but the class was not in it, the class name or namespace probably has a typo in D:\Programming\xampp\htdocs\symfony\symfony4\config/services.yaml (which is loaded in resource "D:\Programming\xampp\htdocs\symfony\symfony4\config/services.yaml"). ******* В чем может быть проблема? Не понимаю, почему он вообще лезет в папку vendor\composer, так и должно быть?
Anonymous
symfony 4
Mykola
composer dump пробовал?
Anonymous
сейчас попробовал, ничего не поменялось)
Anonymous
или мне после этого заново следует установить symfony?
Mykola
<?php
Mykola
в начале файла
Anonymous
вот)) Это уже помогло, спасибо) :D невнимательный
Anonymous
так, тогда дальше. Сейчас сонату попробую установить
Anonymous
А кто-нибудь знает, как контроллер админки сонаты в services.yaml подцепить для symfony 4?. Сейчас вот так, по документации смотрел, но возможно уже синтаксис другой: admin.category: class: CategoryAdmin arguments: [~, \Entity\Category, ~] tags: - { name: sonata.admin, manager_type: orm, label: Category } public: true Ошибку выдаёт эту: ***** Cannot autowire service "App\Controller\CategoryAdmin": argument "$code" of method "Sonata\AdminBundle\Admin\AbstractAdmin::__construct()" must have a type-hint or be given a value explicitly. ***** Модели нужные и миграции сделал
Anonymous
Соната сама работает, админка отображается) Пока контроллер не добавляешь
Кирилл
вроде же ясно написано что у вас нет тайпхинта для $code
Anonymous
ну это мне не дало ничего) В классе AbstractAdmin, от которого наследуется класс CategoryAdmin, должен передаваться этот $code первым аргументом. Что именно должно передаваться, не пойму, и где это прописать? arguments: [*здесь что-то должно быть?*, \Entity\Category, ~]
Alexander
Надо бы код видеть, пока не силён, но объявлена ли $code в entity/Category?
Кирилл
по идее надо в конфиге записать что у CategoryAdmin есть parent: . И вообще, вы же четверку используете, зачем вам алиасы, используйте полное имя класса.
Anonymous
Alexandr, src/Controllers/CategoryAdmin.php ********* <?php namespace App\Controller; use Sonata\AdminBundle\Admin\AbstractAdmin; use Sonata\AdminBundle\Datagrid\ListMapper; use Sonata\AdminBundle\Datagrid\DatagridMapper; use Sonata\AdminBundle\Form\FormMapper; class CategoryAdmin extends AbstractAdmin { protected function configureFormFields(FormMapper $formMapper) { $formMapper->add('name', 'text'); } protected function configureDatagridFilters(DatagridMapper $datagridMapper) { $datagridMapper->add('name'); } protected function configureListFields(ListMapper $listMapper) { $listMapper->addIdentifier('name'); } } ?> ********* vendor\sonata-project\admin-bundle\src\Admin\AbstractAdmin.php ********* ... / * @param string $code * @param string $class * @param string $baseControllerName */ public function __construct($code, $class, $baseControllerName) { $this->code = $code; $this->class = $class; $this->baseControllerName = $baseControllerName; $this->predefinePerPageOptions(); $this->datagridValues['_per_page'] = $this->maxPerPage; } ... ********** Где в движке создаётся экземпляр класса - понятия не имею) U_mulder, с symfony вообще знакомлюсь только сейчас, всё малопонятно пока что) admin.category: parent: AbstractAdmin autowire: true autoconfigure: false class: CategoryAdmin arguments: [~, \Entity\Category, ~] tags: - { name: sonata.admin, manager_type: orm, label: Category} public: true сделал так, но конечно же, parent это видимо вообще что-то другое, мне пока непонятное)
Denis
Ребят, подскажите новичку. Посмотрел вебинар по симфони, пытаюсь повторить. Установка прошла норм, но при создании бандла он не попадает в автошколе... Правлю composer.json добавляя его туда вручную, но при входе браузером 127.0.0.1:8000 получаю ошибку unable to find template
Denis
В названиебандла/resources/views/default есть index.html.twig
Елнур
напишите ошибку полностью, какой template не может найти?