私は、テーブルにスローされるデフォルト値を生成したフォームを使ってcakephpアプリケーションを作成しています(現時点では、これが解決されるまでプレースホルダデータのみです)。フォームは正常にレコードを挿入しますが、何らかの理由でフォームがデフォルト値の最初の文字のみを使用しています。たとえば、「タイトル」は文字「t」のみをフォームに含み、「コンテンツ」は「c」しか含みません。cakephpデフォルト値は最初の文字のみを使用します
私はpr($ this-> data)を使用すると、すべてのプレースホルダーデータがそこにあります。私はそれらを編集し、保存されたテキストを追加することができますので、フォームフィールドの長さの問題ではありません。 $ this-> dataと$ this-> Form-> inputの間のどこかで、デフォルトは切り捨てられています。私はこれをトラブルシューティングする場所を知らない。私はここで何も見つけることができませんでした。私は、この問題についてグーグルでしか言及できませんでしたが、解決されませんでした。
CakePHPの1.3.6、PHP 5.3.3、Linuxのあなたの助けのための
おかげPRの
結果(の$ this - >データ):
Array
(
[title] => title
[content] => content
[media_url] => media_url
)
ビュー:
<? pr($this->data); ?>
<div class="generators form">
<?php echo $this->Form->create('Generator');?>
<fieldset>
<legend>Create New Post</legend>
<?php
echo $this->Form->input('title');
echo $this->Form->input('content');
echo $this->Form->input('publish_date');
echo $this->Form->input('media_url');
?>
</fieldset>
<?php echo $this->Form->end('Create Post');?>
</div>
コントローラ:
<?php
class GeneratorsController extends AppController {
var $name = 'Generators';
function posts()
{
// save the post
if (!empty($this->data)) {
$this->Generator->create();
if ($this->Generator->save($this->data)) {
$this->Session->setFlash(__('The post has been created', true));
$this->redirect(array('action' => 'posts'));
// TODO: call posting app
} else {
$this->Session->setFlash(__('There was a problem. Please, try again.', true));
}
}
else
{
// create post
$this->data['title'] = "title";
$this->data['content'] = "content";
//$this->data['publish_date'] = "";
$this->data['media_url'] = "media_url";
}
}
}
?>
モデル:次の行で
ビンゴ、超高速応答のおかげで、再びその間違いをしないだろう –
@ジョン - それが働いて嬉しい:) – RabidFire