カスタム クラスはインスタンス化できません。 ! !嫌な質問にはポイントを! ! (新しい zendframework を作成するには、zend Studio を使用します)
モデルの下の denglu.php コード:
class denglu{
protected $_username;
protected $_password;
パブリック関数 denglu(){
}
パブリック関数 iddeng(){
if (($this->_username=='mr')&&($ this-> _password=='pass')) {
return true;
}else {
return false;
}
}
}
SelfControllerコントローラの下の .php コード:
class SelfController extends Zend_Controller_Action{
public function init()
{
/* ここでアクション コントローラを初期化します */
}
public function selfAction(){
}
//マイページ
public function myAction(){
$this->view->assign("title" ,"Web ページのログイン インターフェイス");
$this->view->assign("test","Web インターフェイス");
if ($this->_request->isPost() ){
$username = $this->_request->getPost('username');
$password = $this->_request->getPost('password');
$ dengl=new denglu( ); //インスタンス化できません! ! ! ! ! ! ! !
}
}
}
何日もイライラしてます! ! ! !とても迷惑です! ! ! ! ! ! ! ! ! ! ! !
-----解決策---------
解決させてください! 2 つの方法があります:
まず、エントリ ファイルindex.php を次のように変更します:
set_include_path(implode(PATH_SEPARATOR, array(
realpath(APPLICATION_PATH . '/../library'),
realpath(APPLICATION_PATH . '/../library/models'),
get_include_path(),
)));
/*------------- Zend の自動ロードが含まれますclass*/
require_once "Zend/Loader/Autoloader.php";
Zend_Loader_Autoloader::getInstance()->setFallbackAutoloader(true);
2 番目: あなたの場合、ブートストラップがあります。 /application/ の下の php ファイルに次のコードを追加します:
/**
* クラスを自動的にロードします
*/
protected function _initAutoLoad()
{
$moduleLoader = new Zend_Application_Module_Autoloader(
) array(
'namespace' => '',
'basePath' => APPLICATION_PATH
)
);
return $moduleLoader;
}
次に、モデル フォルダー内のクラスに Model_Denglu という名前を付けます。ファイル名は好ましくは Denglu.php (最初の文字は大文字です) とします。
インスタンス化するときは、$dengl=new Model_Denglu() を使用します。
上記のメソッドはどちらも可能です。完了します。