2
我使用的是MySQL和Lithium。 我有一個用戶模型hasOne
聯繫人。 聯繫人模式belongsTo
用戶。鋰:如何在表單中顯示相關數據然後保存?
我在下面列出了我的代碼的一個非常基本的版本。
我的問題:
- 當我編輯用戶並提交表單,我如何讓用戶::編輯保存聯繫人資料,以及?
- 另外,如何在用戶編輯視圖中顯示contacts.email?
模型/ Users.php
<?php
namespace app\models;
class Users extends \lithium\data\Model {
public $hasOne = array('Contacts');
protected $_schema = array(
'id' => array('type' => 'integer',
'key' => 'primary'),
'name' => array('type' => 'varchar')
);
}
?>
模型/ Contacts.php
<?php
namespace app\models;
class Contacts extends \lithium\data\Model {
public $belongsTo = array('Users');
protected $_meta = array(
'key' => 'user_id',
);
protected $_schema = array(
'user_id' => array('type' => 'integer',
'key' => 'primary'),
'email' => array('type' => 'string')
);
}
?>
控制器/ UsersController.php
<?php
namespace app\controllers;
use app\models\Users;
class UsersController extends \lithium\action\Controller {
public function edit() {
$user = Users::find('first', array(
'conditions' => array('id' => $this->request->id),
'with' => array('Contacts')
)
);
if (!empty($this->request->data)) {
if ($user->save($this->request->data)) {
//flash success message goes here
return $this->redirect(array('Users::view', 'args' => array($user->id)));
} else {
//flash failure message goes here
}
}
return compact('user');
}
}
?>
視圖/用戶/ edit.html。 php
<?php $this->title('Editing User'); ?>
<h2>Editing User</h2>
<?= $this->form->create($user); ?>
<?= $this->form->field('name'); ?>
<?= $this->form->field('email', array('type' => 'email')); ?>
<?= $this->form->end(); ?>
剛剛看到關於這個問題的日期......哦,有一天它可能會幫助某人! – 2013-05-19 16:50:49
它只是! :) – Oerd 2013-05-23 20:56:15
謝謝Max。非常善良的你回覆這麼好的細節:) – Housni 2013-06-02 19:01:38