私は MVC と Yii フレームワークにかなり慣れていないため、私の質問がかなりばかげている可能性があります。もしそうなら、私の謝罪を事前に受け入れてください。
Web サイトの管理セクションに、ユーザーがコンテンツを投稿できるフォームを作成したいと考えています。サンプルブログのチュートリアルに従いましたが、データベースでテキストとして定義されているフィールド (フォームのテキストエリア) に追加されたコンテンツは、フォームを送信した後に更新されないようです (他のすべては正常に動作します)。これが私のテーブルのSQLステートメントです:
CREATE TABLE `tbl_show` (
`id` bigint(20) NOT NULL AUTO_INCREMENT,
`presentation` text,
PRIMARY KEY (`id`),
KEY `fk_tbl_show_tbl_season1` (`tbl_season_id`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=2 ;
私は Gii を使用してモデルと CRUD を作成しました。関連する可能性のある部分のみをここに追加します。
私のコントローラーで:
public function actionCreate()
{
$model=new Show;
if(isset($_POST['Show']))
{
$model->attributes=$_POST['Show'];
if($model->save())
{
$this->redirect(array('view','id'=>$model->id));
}
}
$this->render('create',array(
'model'=>$model,
));
と私の _form.php:
<div class="form">
<?php $form=$this->beginWidget('CActiveForm', array(
'id'=>'show-form',
'enableAjaxValidation'=>false,
)); ?>
<?php echo $form->errorSummary($model); ?>
<div class="row">
<?php echo $form->labelEx($model,'presentation'); ?>
<?php echo $form->textArea($model,'presentation',array('rows'=>6, 'cols'=>50)); ?>
<?php echo $form->error($model,'presentation'); ?>
</div>
<div class="row buttons">
<?php echo CHtml::submitButton($model->isNewRecord ? 'Create' : 'Save'); ?>
</div>
<?php $this->endWidget(); ?>
</div><!-- form -->
モデルのルール:
return array(
array('id, presentation', 'safe', 'on'=>'search'),
);
テキスト コンテンツのみが更新されない理由がわかりません。データベースでは null として表示されます。
前もってありがとう、乾杯、マサ