【发布时间】:2014-01-16 17:42:58
【问题描述】:
我正在尝试将数据库表类移动到 \Model\Repository 而不是 \Model 的推荐位置,以便更好地分割模型代码。但是当我这样做时,它找不到课程。我对 ZF2 比较陌生,所以这可能很简单。我假设可以将模型类放入分段目录中,以便更好地分类模型类文件。
这行得通:
module\Client\src\Client\Model\ClientTable.php
从 Module.php 到 ClientTable.php 的路径:
public function getServiceConfig() {
return array(
// setup multiple table access by model as {tablename}Table
'factories' => array(
'Client\Model\ClientTable' => function($sm) {
$dbAdapter = $sm->get('Zend\Db\Adapter\Adapter');
$table = new Model\ClientTable($dbAdapter);
return $table;
},
),
);
}
但是尝试从 Repository 调用会破坏它并导致找不到类方法,但是如果它在 Module 目录中应该可以找到,对吧?
module\Client\src\Client\Model\Repository\ClientTable.php
从 Module.php 到 ClientTable.php 的路径:
public function getServiceConfig() {
return array(
// setup multiple table access by model as {tablename}Table
'factories' => array(
'Client\Model\Repository\ClientTable' => function($sm) {
$dbAdapter = $sm->get('Zend\Db\Adapter\Adapter');
$table = new Model\Repository\ClientTable($dbAdapter);
return $table;
},
),
);
}
【问题讨论】:
-
听起来您在将模型类移动到 Repository 文件夹时没有更改其命名空间。即在您的
ClientTable.php文件中将namespace Client\Model;更改为namespace Client\Model\Repository;。 -
@Crisp - 在发布问题之前,我尝试按照您的建议添加命名空间 Client\Model\Repository。 :(
标签: zend-framework2