symfony - bundle 不存在: Symfony2

标签 symfony controller bundle

我对 Symfony2 还很陌生。我不明白发生了什么事。此代码(设置为测试是否可以检测到 bundle ):

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Ivory\GoogleMap\Overlays\Animation;
use Ivory\GoogleMap\Overlays\Marker;

class DefaultController extends Controller {

public function mapAction() {
    $map = $this->get ( 'ivory_google_map.map' );
        return $this->render ( 'KrewMediaLocalFarmBundle:Default:map.html.twig', array('map' => $map) );
  }
}

可以工作,渲染一个简单的 map ,而此代码(涉及嵌入 Controller 以使用数据渲染 map 的实际代码)

<?php
// localfarm/src/KrewMedia/Bundle/LocalFarmBundle/Controller/DefaultController.php
namespace KrewMedia\Bundle\LocalFarmBundle\Controller;

use Symfony\Bundle\FrameworkBundle\Controller\Controller;
use Ivory\GoogleMap\Overlays\Animation;
use Ivory\GoogleMap\Overlays\Marker;

class DefaultController extends Controller {

public function mapAction() {
    //$map = $this->get ( 'ivory_google_map.map' );
        return $this->render ( 'KrewMediaLocalFarmBundle:Default:maptest.html.twig');
  }
}

给我这个错误:“在模板渲染期间抛出异常(“Bundle“LocalFarmBundle”不存在或未启用)。也许您忘记将其添加到 AppKernel 的 registerBundles() 方法中.php 文件?") 在 KrewMediaLocalFarmBundle:Default:maptest.html.twig 第 3 行。"

maptest.html.twig 和 map.html.twig 都位于 LocalFarmBundle 的同一文件夹中。我想知道为什么在第一段代码中找到了 bundle ,但在第二段代码中却没有找到。相关路由是这样的

krew_media_local_farm_homepage:
    pattern:  /index
    defaults: { _controller: KrewMediaLocalFarmBundle:Default:index }

krew_media_local_farm_map:
     pattern:  /map
     defaults: { _controller: KrewMediaLocalFarmBundle:Default:map }

krew_media_basic_map:
     pattern:  /map/basic
     defaults: { _controller: KrewMediaLocalFarmBundle:Map:basic }

map.html.twig:

{{ google_map_container(map) }}

{{ google_map_js(map) }}

maptest.html.twig:

Map Test

{% render(controller( 'LocalFarmBundle:Map:basic')) %} 

“LocalFarmBundle:Map:basic”的 Controller :

public function basicAction() {
    // set up map
    $map = $this->get ( 'ivory_google_map.map' );

    // Get User geo info
    $user = $this->getUser ();

    if (isset ( $user )) { // check to see if logged in: map is useless without it
        $map->setAutoZoom ( true );
        $map->setStylesheetOption('width', '500px');
        $map->setStylesheetOption('height', '500px');


        $radius = 1;

        // get repository for user class
        $coordList = $this->container->get ( 'sylius.repository.user' )->findUsersNearUser ( $user, $radius );

        // set user marker

        $this->placeMarker ( $user, "/assets/img/home.png", $map );

        if (! empty ( $coordList )) {
            foreach ( $coordList as $geo ) {
                $this->placeMarker ( $geo, "/assets/img/neighbor.png", $map );
            }
        }

        // get furthest distance
        $dist = $this->getFurthestDistance ( $user, $coordList );

        // set invisible boundary markers
        $this->addBoundaries ( $user, $dist, $map );

        // render the map
    } else {
        echo "You are not logged in. Please log in and try again.";
    }


        return $this->render ( 'KrewMediaLocalFarmBundle:Default:map.html.twig', array (
            'map' => $map 
    ) );

如果能帮助解决这个问题,我们将不胜感激。

最佳答案

render 标签需要包的全名,因此请更改

{% render(controller( 'LocalFarmBundle:Map:basic')) %} 

{% render(controller( 'KrewMediaLocalFarmBundle:Map:basic')) %} 

关于symfony - bundle 不存在: Symfony2,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18009125/

相关文章:

symfony - 如何用法语显示 Twig 日期

Symfony 爬虫从下拉列表中选择标签属性

javascript - Controller 作为语法问题

javascript - 为什么 AngularJS Controller 无法在我的电脑上运行?

ruby-on-rails - Ruby on Rails : Displaying Database Data from id?

php - 以编程方式更新 bundle 产品 magento?

php - 表单中的 Symfony2 FileType 输入总是返回 null

php - 如何在 symfony 邮件中嵌入图像?

objective-c - Xcode - 将 sqlite3 数据库保存在 Library 文件夹中

android - 如何通过 Android 中的 ActivityOptions 在 finish() 上设置动画?