我在我的 MacBook Pro 上开发了一些网站。使用 Cakephp 2.3.8。它工作得很好。但是,我将代码上传到 linux 服务器(在 hostmonster.com 上)。它有一些错误。
Mac 环境:osx 10.8.4 PHP 5.3.15 和 Suhosin-Patch (cli)
服务器环境:linux 2.6.32 PHP 5.3.26 (cgi-fcgi)
并且代码是一样的。
1、错误:在非对象上调用成员函数find()
controller:
$kinds = $this->Nailcolor->Kind->find('list'); //it not work on server,but on my mac is ok.
model:
class nailcolor extends AppModel {
public $validate = array( ... )
public $belongsTo = array(
'Kind' => array(
'className' => 'Kind',
'foreignKey' => 'kind_id',
'conditions' => '',
'fields' => '',
'order' => ''
)
);
}
2、
debug($this->Nailcolor->find('first', $options));
mac上的结果
array(
'Nailcolor' => array(
'id' => '1',
'kind_id' => '2',
'name' => 'aaaa',
'color' => 'aaaaa',
'naila' => 'aaaa',
'nailb' => 'aaaaa',
'nailc' => 'ccc',
'naild' => 'ccc',
'naile' => 'ccc',
'nailm' => 'aqaa',
'description' => '',
'created' => '2013-07-16 15:16:56',
'modified' => '2013-07-16 15:16:56'
),
'Kind' => array( /*if run on server,not had "kind". */
'id' => '2',
'name' => 'kkkk',
'description' => '',
'created' => '2013-07-16 15:15:44',
'modified' => '2013-07-16 15:15:44'
)
)
服务器上的结果:
array(
'Nailcolor' => array(
'id' => '3',
'kind_id' => '4',
'name' => 'aaaa',
'color' => '0203',
'naila' => 'aaa',
'nailb' => 'aaa',
'nailc' => 'aaaaa',
'naild' => 'aaaaaaa',
'naile' => 'aaaaaa',
'nailm' => 'aaaaaaaaa',
'description' => '',
'created' => '2013-07-18 02:51:29',
'modified' => '2013-07-18 02:51:29'
)
)
所以服务器上的 view.ctp 是行不通的。
<?php echo $this->Html->link($nailcolor['Kind']['name'], array('controller' => 'kinds', 'action' => 'view', $nailcolor['Kind']['id'])); ?>
为什么????如何设置 php.ini 或 cakephp 设置???? 我希望在我的 Mac 和服务器上获得相同的结果。
上面的代码是由我的 mac 上的“cake bake”生成的。而且我无法在服务器上运行“蛋糕烘烤”。