gpt4 book ai didi

propel - 集成 Zend Framework 2 和 Propel

转载 作者:行者123 更新时间:2023-12-02 06:34:48 25 4
gpt4 key购买 nike

我已经广泛搜索了如何集成 propel 和 Zend Framework 2,但是我还没有找到解决方案。

这是我到目前为止所拥有的。

已安装的 ZF2 骨架目录插入来自 ZF 站点的示例专辑表数据

我的文件夹结构如下所示

--Vendor
----Propel
------album
--------autoload_classmap.php
--------models
----------map
----------om
----------Album.php
----------AlbumPeer.php
----------AlbumQuery.php
------config
--------module.config.php
------Module.php
------autoload_classmap.php

album/autoload_classmap.php 看起来像这样

//vendor/Propel/album/autoload_classmap.php
<?php
// Generated by ZF2's ./bin/classmap_generator.php
return array(
'AlbumTableMap' => __DIR__ . '/models/map/AlbumTableMap.php',
'BaseAlbumPeer' => __DIR__ . '/models/om/BaseAlbumPeer.php',
'BaseAlbumQuery' => __DIR__ . '/models/om/BaseAlbumQuery.php',
'BaseAlbum' => __DIR__ . '/models/om/BaseAlbum.php',
'Album' => __DIR__ . '/models/Album.php',
'AlbumPeer' => __DIR__ . '/models/AlbumPeer.php',
'AlbumQuery' => __DIR__ . '/models/AlbumQuery.php',
);

这是 module.config.php

//vendor/Propel/config/module.config.php
<?php
return array();

这是 Propel/autoload_classmap.php

//vendor/Propel/autoload_classmap.php

<?php
// Generated by ZF2's ./bin/classmap_generator.php
return array(
'Propel' => __DIR__ . '/runtime/lib/Propel.php',
);

最后是 Model.php 文件

    //vendor/Propel/Module.php
<?php

namespace Propel;

class Module
{

public function getAutoloaderConfig()
{
return array(
'Zend\Loader\ClassMapAutoloader' => array(
__DIR__ . '/autoload_classmap.php',
__DIR__ . '/album/autoload_classmap.php'
)
);
}

public function getConfig()
{
return include __DIR__ . '/config/module.config.php';
}
}

为了简单起见,本例我将以下代码放入我的 Controller 中。

//module/Application/src/Application/Controller/IndexController.php
namespace Application\Controller;

use Zend\Mvc\Controller\AbstractActionController;
use Zend\View\Model\ViewModel;

class IndexController extends AbstractActionController
{
public function indexAction()
{
$q = new \Propel\Album();
$q->setArtist('The Who');
$q->setTitle('Tommy');
$q->save();

return new ViewModel();
}
}

我得到的错误是

 Class 'Propel\\Album' not found

我用来达到这一点的来源是

https://groups.google.com/forum/?fromgroups=#!searchin/propel-users/zend/propel-users/lsHs-jjxp68/LDrQjzik6gAJ https://docs.google.com/viewer?a=v&pid=forums&srcid=MDU2NDIxODQyNDc0MDMyNjQ3NzUBMDY3ODcxMTYzMzg0MDA4OTU0MzgBeFpDZUM1WTZqMThKATQBAXYy Adding Vendor Specific Module To Zend Framework 2.0

最佳答案

如果您没有在 XML 模式中设置命名空间,则您的类应该可以在根命名空间中访问,例如\Album。如果您想要其他 namespace ,您应该在 XML 模式的数据库标记中定义它。而且无论如何你都不应该使用 Propel 命名空间,因为它是为 Propel 本身保留的。您生成的类应该长到项目的命名空间。

关于propel - 集成 Zend Framework 2 和 Propel,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13103569/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com