plugin
官方资料:https://book.cakephp.org/2.0/en/plugins/how-to-install-plugins.html
Cakephp 版本 2.4.6
查询数据库
find
find(string $type = 'first', array $params = array())
$type 可以是 'all', 'first', 'count', 'list', 'neighbors' or 'threaded',type 参数大小写敏感。
查询所有 find('all', $params)
$this->find('all', array('conditions' => array( ),
'fields'=>array('id','ctime'),
'order'=>'id DESC'
));
// output
Array(
[0] => Array(
[ModelName] => Array(
[id] => 1
[ctime] => value1
)
)
)
conditions 例子
'age >=' => 16,
'age' => array(16, 17, 18),
常用 App 静态方法
App::build
定义包的查找路径
// 设置 Mysql Model 的查找路径
App::build(array('Model'=>array(APP . 'Model' . DS . 'Mysql' . DS)));
App::uses
https://book.cakephp.org/2.0/en/core-utility-libraries/app.html#App::uses
static App::uses(string $class, string $package)
关于 App::uses() 这个静态方法,官方文档是这么说的:
Classes are lazily loaded in CakePHP, however before the autoloader can find your classes you need to tell App, where it can find the files.
By telling App which package a class can be found in, it can properly locate the file and load it the first time a class is used.
也就是说 App::uses() 只是定义了要加载的类和类文件的路径,并没有将类文件加载进来。只有在第一次使用这个类时才会去加载。
Components
Components are packages of logic that are shared between controllers.
- 想在 Component 中使用 set 定义 views中的变量。
google之后参考原生的PaginatorComponent,添加一下代码实现。
public function __construct(ComponentCollection $collection, $settings = array()) {
$settings = array_merge($this->settings, (array)$settings);
$this->Controller = $collection->getController();
parent::__construct($collection, $settings);
}
- 如何在 controller 中手动加载 component
$cptName = $this->Components->load('componentName');
网友评论