2

db テーブルに 2 つの新しい列を追加し、テーブル モデル自体にこれらの新しい列を定義してから、呼び出したときに

$model->getAttributes()

2 つの新しい列は、の配列出力には表示されませんでした$model->getAttributes() method call

構成にスキーマ キャッシュ セットがありません。これを解決する方法はありますか? また、新しく追加された 2 つの列を表示する際に問題がある場合、フロントエンドから新しく追加された列の入力フォームの値を取得するにはどうすればよいですか?列を追加しましたか?

例えば

新しいコラム INHOUSE OUTHOUSE

//見る

 <?php echo $form->checkBox($model,'INHOUSE',array("id"=>"inhouse","value"=>1, "uncheckValue"=>0));?>
 <?php echo $form->checkBox($model,'OUTHOUSE',array("id"=>"outhouse","value"=>1, "uncheckValue"=>0));?>

//コントローラー更新アクション

INHOUSE の値を保存しようとしましたが、OUTHOUSE は保存されませんでした。

$model->attributes = $_POST['users'];
$model->save();

または

$model->INHOUSE = $_POST['users']['INHOUSE'];
$model->OUTHOUSE = $_POST['users']['OUTHOUSE'];
$model->save;

これらすべての問題を解決する方法はありますか?

4

2 に答える 2

5

: protected/runtime フォルダーに移動し、すべてのファイルを削除してください。そしてさらに試みる。

于 2012-10-24T15:52:57.463 に答える
3

1-これらの列のDBに直接データを挿入できますか? 2-これらの列を管理ビューまたは他のビューで表示できますか? 3-getColumn メソッドを使用してこれらの値を取得できますか?

そうでない場合は、これを試してください:

モデルとビューで新しい列が指定されていることを確認してください

Model_Name.php

public function attributeLabels()
{
    return array(
        'id' => 'ID', // example
        'new_column' => 'New Column',
        ...
    );
}

また、上から下にチェックする必要があります。また、モデルの上部にもこれを入力することをお勧めします。

 * @property integer $id //example
 * @property data_type $new_column
...

次に、新しい列を表示するには、それらを必要なビューに追加する必要があります。

VIEW.PHP

$this->widget('zii.widgets.CDetailView', array(
    'data'=>$model,
    'attributes'=>array(
         'id',
         'new_column',
          ...

これらすべての定義を備えたモデルがある場合は、DB からそれらの値を取得できるはずです。使用している可能性のあるカスタム関数を再確認してください。

于 2012-10-24T14:30:15.193 に答える