0
私は現在、次のモデルがあります:私は、ビューでこのフォームを持っている関連するモデルが検証されていない
class Category extends AppModel {
var $name = 'Category';
/*var $validate = array(
'name' => 'multiple'
);
no idea how to use this
*/
var $hasAndBelongsToMany = array(
'Post' => array(
'className' => 'Post'
)
);
class Post extends AppModel {
var $name = 'Post';
var $hasAndBelongsToMany = array(
'Category' => array(
'className' => 'Category'
)
);
var $belongsTo = array(
'Page' => array(
'className' => 'Page'
)
);
class Page extends AppModel {
var $name = 'Page';
var $order = array('Page.modified' => 'desc');
var $hasOne = array(
'Post' => array(
'className' => 'Post'
));
を:
<div id="content-wrap">
<div id="main">
<h2>Add Post</h2>
<?php echo $this->Session->flash();?>
<div>
<?php
echo $this->Form->create('Post');
echo $this->Form->input('Post.title');
echo $this->Form->input('Category.Category', array('multiple' => 'checkbox'));
echo $this->Form->input('Post.body', array('rows' => '3'));
echo $this->Form->input('Page.meta_keywords');
echo $this->Form->input('Page.meta_description');
echo $this->Form->end('Save Post');
?>
</div>
<!-- main ends -->
</div>
マイコントローラー:
function admin_add() {
// pr(Debugger::trace());
$this->set('categories', $this->Post->Category->find('list'));
if (! empty($this->data)) {
$this->data['Page']['title'] = $this->data['Post']['title'];
$this->data['Page']['layout'] = 'index';
if ($this->Post->saveAll($this->data)) {
$this->Session->setFlash('Your post has been saved', 'flash_good');
$this->redirect($this->here);
}
}
}
私が抱えている問題は、カテゴリを選択せずに投稿を保存できることです。
私は、カテゴリーのモデルにルールとして以下を追加しようとしました:
var $validate = array(
'rule' => array('multiple', array('in' => array(1, 2, 3, 4))),
'required' => TRUE,
'message' => 'Please select one, two or three options'
);
ポストとページモデルを検証します。 カテゴリの検証を有効にするにはどうすればよいですか?
私は後でそれを試みます。私の質問は、アプリケーションをカテゴリを追加できるようにするとどうなりますか? 「複数の」ルールが間違っているのではないでしょうか? < - これはもちろん質問には関係しません。 –
はい、そのような場合には間違いでしょう。あなたが 'マルチプル 'を使う良い例は、ユーザーが(友情、デート、関係、ネットワーキング)の間で複数のオプションを選択できる、Facebookの"探している "フィールドです。 – RabidFire
私はそれを取得しません。カテゴリを追加して、投稿を追加するときに私がそれを選択できるようにするために、今、アプリケーションについてどうやって行くのですか? –