问:开发中,程序一般设定debug为2,如何在某一个特定的action中关闭debug?
答:Configure::write('debug', 0);
问:如何静态化某个action渲染的视图?
答:过程就是先获得渲染的内容,再生成静态文件,这里看看如何获得渲染后的内容,大致两个方法:
1. 可以使用ob函数。
2. 在控制器里$this->requestAction('/controller/action/param', array('return'));
问:如何改变模型间的关系,生成高效的SQL语句?
答:在使用CakePHP开 发的过程中,必须尽可能保证DEBUG设置在2,时刻注意CakePHP帮你生成的SQL语句是否正常。这里就会常用到recursive和 unbindModel。这里需要注意的是,如果使用的是$this->model->read()的话,则可以 用$this->model->recursive = N;来调整级联数,如果使用的是$this->model->find() / $this->model->findAll()的话,他们的最后一个形参就是控制级联数的。
find( $conditions,
$fields,
$order,
$recursive);
string $conditions;
array $fields;
string $order;
int $recursive;
findAll( $conditions,
$fields,
$order,
$limit,
$page,
$recursive);
string $conditions;
array $fields;
string $order;
int $limit;
int $page;
int $recursive;
问:CakePHP程序和其他PHP程序的session不能统一?
答:这是因为缺省状态下,CakePHP修改了Cookie的名字,所以不能和其他PHP相对应,只要修改core.php文件对应选项即 可:define('CAKE_SESSION_COOKIE', ini_get('session.name'));缺省为PHPSESSID。
问:CakePHP程序中,URL大致有几种形式?
答:大致有三种形式。
第一种,借助mod_rewrite的能力,其URL大致如http://xxx/controller/action/param,只要开启Apache的重写模块即可。
第二种,是PATH_INFO形式,其URL大致如http://xxx/index.php/controller/action/param,如果想 使用这样的形式,只要修改core.php中对应行即可:define ('BASE_URL', env('SCRIPT_NAME'));
第三种形式,是传统的URL形式,其URL大致如http://xxx/index.php?url=/controller/action/param,至于为啥可以这样,你只要看看CakePHP的.htaccess文件写法就知道了。
问:如果CakePHP程序中,仅仅是显示一些静态页面,怎样处理?
答:使用缺省的/pages控制器,缺省就带有几个例子。
问:常用动作如何统一命名?
答:常用动作统一命名,有助于标准化处理,所谓常用动作指的是CRUD常见操作,如:
class ExampleModel extends AppController
{
var $name = 'Example';
function index()
{
}
function add()
{
}
function edit($id)
{
}
function view($id)
{
}
function remove($id)
{
}
}
问:CakePHP1.2中如何设置input标签,并验证?
答:在CakePHP1.2中,已经不在推荐使用html助手,而使用新的form助 手,设置input标签大概如“