Я установил все комплекты сонаты, следуя документации шаг за шагом. У меня все еще есть несколько ошибок, чтобы исправить некоторые действия, такие как удаление изображений. Все ошибки, с которыми я сталкиваюсь сейчас, кажутся связанными.
Я поставил два вопроса, один SonataMediaBundle и один в SonataClassificationBundle.
Попытка вызвать метод «ifTrue» для класса «Sonata \ AdminBundle \ Form \ FormMapper».
в вендоре / соната-проект / классификация-комплект / Admin / ContextAdmin.php в строке 27
Когда я пытаюсь получить доступ к маршруту «/ классификация / контекст / создать» или «../edit».
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper
->ifTrue($this->getSubject()->getId() === null)
->add('id')
->ifEnd()
->add('name')
1 — ОТЛАДКА — Соната маршрутизатора \ PageBundle \ Route \ CmsPageRouter не смогла
чтобы соответствовать, сообщение «сайт не определен»
«Сайт не определен» заставляет меня догадываться, что я должен что-то сделать для этого. Я создал страницу по умолчанию с SonataPageBundle (добавлен в базу данных). Я не знаю, есть ли конкретный параметр для добавления в конфигурации. Как я уже сказал, я следовал за документацией шаг за шагом, и я не вижу ничего, связанного с определением сайта. Однако я не уверен, что «сайт не определен» связан с основной ошибкой.
Вот мой composer.json на случай, если он будет полезен.
"require": {
"php": ">=5.3.3",
"symfony/symfony": "2.6.",
"doctrine/orm": "~2.2,>=2.2.3",
"doctrine/doctrine-bundle": "~1.2",
"twig/extensions": "~1.0",
"symfony/assetic-bundle": "~2.3",
"symfony/swiftmailer-bundle": "~2.3",
"symfony/monolog-bundle": "~2.4",
"sensio/distribution-bundle": "~3.0.12",
"sensio/framework-extra-bundle": "~3.0",
"incenteev/composer-parameter-handler": "~2.0",
"sonata-project/core-bundle": "~2.2@dev",
"sonata-project/notification-bundle": "~2.3",
"knplabs/knp-markdown-bundle": "~1.2",
"videlalvaro/php-amqplib": "~2.4",
"liip/monitor-bundle": "~2.0",
"symfony-cmf/routing-bundle": "1.4.@dev",
"jms/serializer-bundle": "0.13.*@dev",
"sonata-project/formatter-bundle": "~2.3",
"sonata-project/markitup-bundle": "~2.1",
"sonata-project/intl-bundle": "~2.2",
"sonata-project/cache-bundle": "~2.2",
"sonata-project/seo-bundle": "~1.1",
"sonata-project/easy-extends-bundle": "~2.1",
"sonata-project/admin-bundle": "~2.3",
"sonata-project/doctrine-orm-admin-bundle": "~2.3",
"sonata-project/user-bundle": "~2.2",
"sonata-project/classification-bundle": "dev-master",
"sonata-project/news-bundle": "dev-master",
"sonata-project/timeline-bundle": "~2.2@dev",
"sonata-project/media-bundle": "~2.4@dev",
"sonata-project/page-bundle": "~2.3@dev"}
Любые решения или советы?
Метод ifTrue
или же ifFalse
собираются приземлиться в выпуске 2.4 SonataAdminBundle. Пожалуйста, используйте стабильную версию пакетов.
Метод ifTrue не существует в классе FormMapper: https://github.com/sonata-project/SonataAdminBundle/blob/2.3/Form/FormMapper.php.
Я не знаю, где вы можете найти это.
Вы должны сделать это вместо этого:
protected function configureFormFields(FormMapper $formMapper)
{
if ($this->getSubject()->getId() === null) {
$formMapper->add('id');
}
$formMapper
->add('name')
}
Также я не знаю, почему вы хотите определить идентификатор, он должен быть автоматически установлен при создании.
Что касается вашей второй ошибки, исключение происходит из этого класса https://github.com/sonata-project/SonataPageBundle/blob/2.3.8/Route/CmsPageRouter.php#L158, я никогда не использовал этот пакет, но, по-моему, вы забыли создать сайт:
php app/console sonata:page:create-site
Более подробно объяснено в документации: http://sonata-project.org/bundles/page/master/doc/reference/getting_started.html
ifTrue
а также ifFalse
Метод находился в основной ветке менее месяца и теперь удален. Код, на который вы ссылаетесь, не обновляется.
В будущем, пожалуйста, используйте стабильную версию, иначе вы можете найти ошибку WIP.