MacBook Pro.use Cakephp 2.3.8 でいくつかの Web サイトを開発しています。それはとてもうまくいきます。しかし、コードを Linux サーバー (hostmonster.com) にアップしました。バグがありました。
Mac の環境: osx 10.8.4 PHP 5.3.15 with 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));
マックでの結果
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」によって生成されたものです。サーバーで「ケーキ焼き」を実行できません。