マイコントローラ:CakePHPの - フォームの値が検証coudn't
class PostsController extends AppController
{
function index() {
$this->set('posts', $this->Post->find('all'));
}
function add(){
if(!empty($this->data))
{
$this->Post->save($this->data);
$this->Session->setFlash('the post was saved successfully');
$this->redirect('/posts/index');
}
else
{
$this->Session->setFlash('the post was not saved');
}
}
}
マイモデル
class Post extends AppModel {
var $name = 'Post';
var $validate = array(
'title'=>array(
'title_must_not_be_blank'=>array(
'rule'=>'notEmpty',
'message'=>'$this post is missing a title'
),
'title_must_be_unique'=>array(
'rule'=>'isUnique',
'message'=>'A post with this title already exists'
)
),
'body'=>array(
'body_must_not_be_blank'=>array(
'rule'=>'notEmpty',
'message'=>'this post is missing the body'
)
)
);
}
そして、私のビュー
<form action="<?= $this->base.'/posts/add' ?>" method="post">
<label>title</label>
<input type="text" name="data[Post][title]" /><br />
<label>body</label>
<textarea type="text" name="data[Post][body]"></textarea><br />
<input type="submit" value="submit" />
</form>
(私はケーキhtmlとフォームヘルパーを使用しないでください)
問題:
私は故意にouを残したフィールドは、フォームはデータベースに値を提出しました。
そして、私はhtml-helpersの使用を避けようとしています。
"answer/rant"が削除されることを願って、ここでコメントします。ケーキは必要なだけ柔軟性があります。フレームワークに組み込まれたメカニズムを使用しないことを望みます。あなたは自由にそれをすることができます。 FormHelperを置き換えるために独自のコードを書き、それを使用してください。しかし、「私はフレームワークのツールを使用するつもりはありませんが、私のようにフレームワークを実行したいと思っています」と言うことは期待できません。それは完全に不合理です。 – cspray
私は@Charlesに同意します。それはOS XをWindowsに置き換えて、あなたのMacがAppleが宣伝していることをしないと不平を言うようなものだ。 – JJJ