私はここを見て、同じ問題を抱えている人を見つけましたが、解決策はどれも私にはうまくいかないようでした.
今、私は更新するように与えられたウェブサイトに新しいページを追加しようとしています (私は自分自身で新しいサイトフォームを開始しませんでした)。同じテーブルに私のライブサイトにあるものがあるので、このコードを CakePHP の新しいコピーで使用します。ただし、「オブジェクト以外のメンバー関数 find() への呼び出し」が表示されます。これは、find コマンドを呼び出す方法または CakePHP 構成ファイルが変更された方法に関係があると思います。
これを Routes.php に追加します:
Router::connect('/events', array('controller' => 'events', 'action' => 'eventDetails'));
私のモデルコード:
class Event extends AppModel {
var $name = 'Event';
var $validate = array(
'id' => array(
'numeric' => array(
'rule' => array('numeric'),
//'message' => 'Your custom message here',
'allowEmpty' => true,
//'required' => false,
//'last' => false, // Stop validation after this rule
//'on' => 'create', // Limit validation to 'create' or 'update' operations
),
),
'startdate' => array(
'numeric' => array(
'rule' => array('numeric'),
//'message' => 'Your custom message here',
//'allowEmpty' => false,
//'required' => false,
//'last' => false, // Stop validation after this rule
//'on' => 'create', // Limit validation to 'create' or 'update' operations
),
),
'endate' => array(
'numeric' => array(
'rule' => array('numeric'),
//'message' => 'Your custom message here',
'allowEmpty' => true,
//'required' => false,
//'last' => false, // Stop validation after this rule
//'on' => 'create', // Limit validation to 'create' or 'update' operations
),
),
'spaces' => array(
'alphanumeric' => array(
'rule' => array('alphanumeric'),
//'message' => 'Your custom message here',
'allowEmpty' => true,
//'required' => false,
//'last' => false, // Stop validation after this rule
//'on' => 'create', // Limit validation to 'create' or 'update' operations
),
),
'info' => array(
'alphanumeric' => array(
'rule' => array('alphanumeric'),
//'message' => 'Your custom message here',
'allowEmpty' => true,
//'required' => false,
//'last' => false, // Stop validation after this rule
//'on' => 'create', // Limit validation to 'create' or 'update' operations
),
),
'info' => array(
'alphanumeric' => array(
'rule' => array('alphanumeric'),
//'message' => 'Your custom message here',
'allowEmpty' => true,
//'required' => false,
//'last' => false, // Stop validation after this rule
//'on' => 'create', // Limit validation to 'create' or 'update' operations
),
),
'img' => array(
'alphanumeric' => array(
'rule' => array('alphanumeric'),
//'message' => 'Your custom message here',
'allowEmpty' => true,
//'required' => false,
//'last' => false, // Stop validation after this rule
//'on' => 'create', // Limit validation to 'create' or 'update' operations
),
),
);
//The Associations below have been created with all possible keys, those that are not needed can be removed
var $belongsTo = array(
'Team' => array(
'className' => 'Team',
'foreignKey' => 'team_id',
'conditions' => '',
'fields' => '',
'order' => ''
),
);
}
このコードはポイントし、すべての db フィールドをチェックすると思います。これは別のモデルからコピーしたコードですが、テーブルで使用するために変更しました。
私のコントローラーコード:
class EventsController extends AppController {
var $name = 'Events';
var $uses = array();
function eventDetails() {
$EventData = $this->Event->find('all');
print_r($EventData);
die();
} //End of function eventDetails()
} // End of EventsController Class
画面エラー:
Notice (8): Undefined property: EventsController::$Event [APP/controllers/events_controller.php, line 10] Fatal error: Call to a member function find() on a non-object in /var/www/vh/app/controllers/events_controller.php on line 10
これが扱う唯一の 2 つのテーブルはイベントとチームです。これらは小文字で保存され、最後に「s」が付きます。チームテーブルはすでにデータベースにあり、イベントテーブルは私が作成した新しいものです。私が言うように、これらのテーブルをライブ サイトからテスト データベースにエクスポートし、新しい CakePHP セットアップを使用すると、テーブルの内容が出力されます。
したがって、CakePHP のセットアップ方法に関係するものである必要があり、これ (ケーキ) はまだ私にとって非常に新しいものです。新しいモデル/コントローラー/テーブルを作ったのはこれが初めてです。私が行っているのは、既に構築され動作しているコントローラーに新しい機能を追加することだけです。
私もこのコードを試してみました。このタイプのエラーに関する別の投稿から '$this->set('events'' を取得しました
できる限り明確にするよう努めましたが、そうでない場合はお知らせください。
助けてくれてありがとう!
グレン・カーティス。