ユーザーが自分の情報を追加できるユーザープロファイルを作成しました。したがって、URLセクションに、Facebook、www.facebook.com/userなどの他のリンクを配置してもらいます。
しかし、[何も更新しない]をクリックすると更新されますか?
これがユーザーのモデルです:Models / User.php
<?php
class User extends AppModel {
public $name = 'User';
public $hasMany = array (
'UserWeb'=>array(
'className'=>'UserWeb',
'foreignKey'=>'user_id'
)
);
}
?>
UserWebのモデル:Models / UserWeb.php
<?php
class UserWeb extends AppModel {
public $name = 'UserWeb';
public $belongsTo = array('User' =>
array('className' => 'User',
'conditions' => '',
'order' => '',
'foreignKey' => 'user_id'
)
);
}
?>
ユーザーのコントローラー:
$this->User->id = $this->Auth->user('id');
if ($this->request->is('post')) {
if ($this->User->save($this->request->data, array('validate' => false))) {
$this->Session->setFlash('Profile updated succsessefully!',
'default', array('class' => 'okmsg'));
$this->redirect($this->request->here);
} else {
$this->Session->setFlash('Profile could not be saved. Please, try again.',
'default', array('class' => 'errormsg'));
}
}
そして、ビューフォーム:
<?php
echo $this->Form->create();
echo $this->Form->input('UserWeb.title',
array('label'=>false,'placeholder'=>'Title'));
echo $this->Form->input('UserWeb.url',
array('label'=>false,'placeholder'=>'Enter URL'));
echo $this->Form->end('Save');
?>
誰か助けてもらえますか?私は長い間解決策を見つけようとしています。フォームを送信すると、user_websテーブルに新しい情報が保存されません。
そして、ここにテーブルがあります:
CREATE TABLE `user_webs` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`user_id` int(11) DEFAULT '0',
`title` varchar(128) DEFAULT NULL,
`url` varchar(128) DEFAULT NULL,
`created` datetime DEFAULT NULL,
`modified` datetime DEFAULT NULL,
PRIMARY KEY (`id`),
KEY `web` (`user_id`),
CONSTRAINT `web` FOREIGN KEY (`user_id`) REFERENCES `users` (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8