phalcon:官方多模块支models层,mode数据库配置(二)
利用:\pahlcon\mvc\model\Manager::registerNamespaceAlias()方法获取多模块下的model层
public/index.php
use Phalcon\Mvc\Model\Manager as ModelsManager;
//对模型进行别名处理
$di->set('modelsManager', function() {
return new ModelsManager();
});
model层,我的命名空间是:
namespace App\Modules\Backend\Models;
namespace App\Modules\Backend\Models;
use \Phalcon\Mvc\Model;
class Album extends Model {
//id
public $aid;
//模板id
public $atid;
public $name;
//影片id
public $mid;
//文章id
public $nid;
public $enable;
public $create_time;
public function beforeCreate()
{
if( is_null($this->create_time) )
$this->create_time = time();
if( is_null($this->enable) )
$this->enable = 0;
}
}
那么controller层怎么调用model数据呢。
方法有一:
$cate = \App\Modules\Backend\Models\Album::findFirst(array(
'conditions'=>"aid = :aid:",
'bind'=>array('aid'=>$aid)
));
方法二(多表查询):
注册别名
$this->modelsManager->registerNamespaceAlias('m' , 'App\Modules\Backend\Models');
$currentPage = $this->getParam('page');
$builder = $this->modelsManager->createBuilder()
->columns("aid,atid,name,mid,nid,create_time")
->from("m:Album")
->where("enable = 0")
->orderBy("aid ASC");
将model下的文件,都赋给别名:m,那么调用具体的数据表就是: m:Album, m:User。。。。。。