1

password.phpファイルをcomponentsフォルダに入れました。phpStormの既存の関数はよく表示されますが (自動補完)、実行時に次のような問題が発生しますpassword.php

Fatal error: Call to undefined function password_hash() in . . .\protected\controllers\SiteController.php on line 129

どういう理由ですか?

main.php

...
'import'=>array(
    'application.models.*',
    'application.components.*',
),
...
4

1 に答える 1

2

Yiiは、ファイル名がクラス名と同じで、クラス定義ファイルがインポート パスにある場合にのみ、クラスを自動ロードします。関数のバンドルを含むファイルの場合は、手動でinclude(またはrequire) する必要があります。
含めるには、dirname(__FILE__)(php 5.2) または__DIR__(php 5.3+) を使用して現在のファイルへのパスを取得し、ファイルとファイル名に相対パスを追加します。index.phpこれを次のように に入れることができます。

require_once dirname(__FILE__) . '/../protected/components/password.php';

またはもっと単純に、php 5.3+ を使用している場合:

require_once __DIR__ . '/../protected/components/password.php';
于 2013-05-11T09:38:04.810 に答える