0


私は現在、「Yii を使用したアジャイル Web アプリケーション開発」という書籍の手順に従っていますが、これまでところ、第 8 章までにすべてを正しく行うことができました。 RAM)、この webapp 内だけでなく、 Active Record がデータベース テーブルを見つけられないことを除いて、すべてが正しく機能しているように見えますが、私が持っていた古い機能的で非常に単純なデモでも試してみましたが、Model クラス (拡張) Yii の CActiveRecord クラス)。

Mac OS X Lion 10.7.3(2.4GHz Intel Core 2 Duo、8GB RAM MacBook Pro)でMySQLデータベース(完全に動作)でXAMPPを使用しています。PHPUnit も再起動前に完全に機能していました。

main.php ファイルの 'db' コンポーネントを何度か確認しましたが、すべて問題ないと思います。

'db'=>array(
    'connectionString' => 'mysql:host=localhost;dbname=Customer',
    'emulatePrepare' => true,
    'username' => 'root',
    'password' => 'jasalo',
    'charset' => 'utf8',
),

また、追加しようとしました

'tablePrefix' => 'tbl_'
本が webapp で使用するパラメーターです (ただし、tablePrefix を使用してそれを行うことはお勧めしません)。

一方、 Yii を介して簡単なクエリを実行すると、うまくいきます (単純なビュー、About でこれを試しました)。

var_dump(Yii::app()->db->createCommand('select * from tbl_user')->queryAll());

そして、これは私が得た結果の一部です(これは正しいです):

array(3) { [0]=> array(9) { ["id"]=> string(1) "1" ["email"]=> string(22) "test1@notanaddress.com" ["username"]=> string(13) "Test_User_One" ["password"]=> string(32) "5a105e8b9d40e1329780d62ea2265d8a"...

webappのindex.phpファイルにある Yii のフレームワーク パスを変更してみました。何か案は?

ああ、これは、CActiveRecord モデル (クラス) を使用しようとするたびに表示されるエラー メッセージです。

CDbException

アクティブなレコード クラス "User" のテーブル "tbl_user" がデータベースに見つかりません。
4

2 に答える 2

0

権限の問題であることがわかりました。phpmyadmin にアクセスして問題を発見し、テーブルの構造を表示しようとしてログインしたところ、/var/folders にアクセスする権限がないと言われたため、権限を 777 に変更しました (ただし、少し安全ではありません)。単一ユーザー環境にあるため、私の場合は問題です):

sudo chmod -R 777 /var/folders
于 2012-12-19T20:57:14.100 に答える
0

私の開発環境(MAMP)では、モデルに次のものが機能していました。

public function tableName()
{
    return 'Nantivdb';
}

ここで、「Nantivdb」は CActiveRecord を拡張するクラスの名前であり、クエリするテーブルは「nantiv0」です。

本番環境では、次のように変更する必要がありました。

public function tableName()
{
    return 'nantiv0';
}

または、yii はテーブル 'nantiv0' を見つけられません。

したがって、/models/User.php に次の変更を加えます。

public function tableName()
{
    return 'tbl_user';
}

申し訳ありませんが、提供する説明がこれ以上ありません...

于 2012-04-26T13:38:15.507 に答える