Sonata,Sf2:尝试在路线 /classification/context/create 上调用方法 "ifTrue"
Sonata, Sf2 : Attempted to call method "ifTrue" on route /classification/context/create
我按照文档一步步安装了所有的Sonata Bundles。我仍然有一些错误需要修复某些操作,例如删除图像。我现在面临的所有错误似乎都是相关的。
我提交了两期,一期SonataMediaBundle and one in SonataClassificationBundle。
Attempted to call method "ifTrue" on class "Sonata\AdminBundle\Form\FormMapper".
in vendor/sonata-project/classification-bundle/Admin/ContextAdmin.php at line 27
当我尝试访问路由“/classification/context/create”或“../edit”时。
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper
->ifTrue($this->getSubject()->getId() === null)
->add('id')
->ifEnd()
->add('name')
1 - DEBUG - Router Sonata\PageBundle\Route\CmsPageRouter was not able
to match, message "No site defined"
"No site defined" 让我觉得我应该做点什么。我确实使用 SonataPageBundle(添加到数据库中)创建了一个默认页面。我不知道是否有特定的参数要添加到配置中。正如我所说,我一步一步地遵循文档,但我没有看到任何与定义站点相关的内容。但是我不确定 "no site defined" 是否与主要错误有关。
这是我的 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"
}
任何解决方案或提示?
class FormMapper 中不存在 ifTrue 方法: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')
}
另外我不知道你为什么要定义id,它应该是在创建时自动设置的。
关于你的第二个错误,异常来自这个 class 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
[edit] 错误评论见:https://github.com/sonata-project/SonataAdminBundle/pull/2664/files
ifTrue
和ifFalse
方法在master 分支中还不到一个月,现在被移除了。您引用的代码似乎没有更新。
以后请使用稳定版本,否则你可能会发现一些 WIP 错误。
方法 ifTrue
或 ifFalse
将在 SonataAdminBundle 的 2.4 版本中登陆。请使用稳定版的捆绑包。
我按照文档一步步安装了所有的Sonata Bundles。我仍然有一些错误需要修复某些操作,例如删除图像。我现在面临的所有错误似乎都是相关的。
我提交了两期,一期SonataMediaBundle and one in SonataClassificationBundle。
Attempted to call method "ifTrue" on class "Sonata\AdminBundle\Form\FormMapper". in vendor/sonata-project/classification-bundle/Admin/ContextAdmin.php at line 27
当我尝试访问路由“/classification/context/create”或“../edit”时。
protected function configureFormFields(FormMapper $formMapper)
{
$formMapper
->ifTrue($this->getSubject()->getId() === null)
->add('id')
->ifEnd()
->add('name')
1 - DEBUG - Router Sonata\PageBundle\Route\CmsPageRouter was not able to match, message "No site defined"
"No site defined" 让我觉得我应该做点什么。我确实使用 SonataPageBundle(添加到数据库中)创建了一个默认页面。我不知道是否有特定的参数要添加到配置中。正如我所说,我一步一步地遵循文档,但我没有看到任何与定义站点相关的内容。但是我不确定 "no site defined" 是否与主要错误有关。
这是我的 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"
}
任何解决方案或提示?
class FormMapper 中不存在 ifTrue 方法: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')
}
另外我不知道你为什么要定义id,它应该是在创建时自动设置的。
关于你的第二个错误,异常来自这个 class 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
[edit] 错误评论见:https://github.com/sonata-project/SonataAdminBundle/pull/2664/files
ifTrue
和ifFalse
方法在master 分支中还不到一个月,现在被移除了。您引用的代码似乎没有更新。
以后请使用稳定版本,否则你可能会发现一些 WIP 错误。
方法 ifTrue
或 ifFalse
将在 SonataAdminBundle 的 2.4 版本中登陆。请使用稳定版的捆绑包。