Oleg
да прибудет счастье в твой комп
Mykola
но тогда нет смысла в user_id столбце.
Oleg
ну тут уже от логики зависит
Mykola
Он всегда будет указывать на последнего лайкнувшего юзера
Oleg
может один и тот же юзер может лайкать больше одного раза
Mykola
ага.. ну тогда и counter_likes обретает смысл)
Oleg
щас всю структуру сайта поменяем к какой-нибудь бабушке =))))))
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() для нужного мне сьюта
Misha
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
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
ТО есть один юзер может иметь много лайков, но при это в одном посте только по одному лайку
Oleg
А ты о какой таблице говоришь?
Oleg
Если хочешь, я тебе завтра никадаю сущности как надо
darkwoolf
Было бы не плохо
Dmitriy
Всем привет
Может кто подсказать... разбираюсь с 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"
Где то явно напортачил, где понять сложно..
написано же:
"The service "admin.blog" has a dependency on a non-existent service "sonata.admin.manager.orm"."
нужно еще установить doctrine-orm-admin-bundle и прописать его в аппкернел
composer require sonata-project/doctrine-orm-admin-bundle
в аппкернел:
new Sonata\DoctrineORMAdminBundle\SonataDoctrineORMAdminBundle(),
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 не может найти?