CakePHPのマルチ-モデルビュー
-
02-07-2019 - |
質問
私の作成には、あなたのホームページCakePHP、私のような新しいことです。見られませんでしたが良い資源のことがとても苦手なのでお願いしま:
いいテーブル構造の登録利用者: Users
, Addresses
や Contacts
.していますの構築と、詳細情報の全てがテーブルのように:
Full Name: [ ] (from Users) Shipping Address: [ ] (from Address) Mobile Phone: [ ] (from Contact) e-Mail Address: [ ] (from Contact)
には、どうするのがベストなこのような状況に対処するために. 特別保存.新しいモデルを持つ新 save()
手法自体も、sql viewのデータベース)のコントローラを作成にするものとして取り組る bind
sまたは unbind
s情報
かまだかと連絡しています2つの異なる INSERT
's
他のヒントやリソースできる掘りのままでしてくれると嬉しいです。
解決
ご使用の最新1.2コード、チェックアウトモデル::saveAllのapi
例えば.おのようになります:
echo $form->create('User', array('action' => 'add');
echo $form->input('User.name');
echo $form->input('Address.line_1');
echo $form->input('Contact.tel');
echo $form->end('Save');
その後ユーザーのコントローラーの追加方法はいようなもの:
...
if($this->User->saveAll($this->data)) {
$this->Session->setFlash('Save Successful');
$this->redirect(array('action' => 'index'));
} else {
$this->Session->setFlash('Please review the form for errors');
}
...
ユーザモデルが必要のようなもの:
var $hasOne = array('Address', 'Contact');
こ!
http://api.cakephp.org/class_model.html#49f295217028004b5a723caf086a86b1
他のヒント
CakePHPを簡単に保持リンクモデルを使用との関係、 http://book.cakephp.org/view/78/Associations-Linking-Models-Together の。その後retreiving右のユーザーまでは"無料"、そのアドレスおよび連絡先情報を保存します。
3モデル:ユーザーの住所-連絡先
User hasOne Address, Contact
Address belongsTo User
Contact belongsTo User
あなたのモデルを定義するこのようになります:
class User extends AppModel {
var $name = 'User';
var $hasOne = array('Address','Contact');
..
このビューが必要 user_id 野工業(株) アドレス, は、 連絡先 テーブル
このビューは、単に呼び他のユーザーモデルの再帰一(ちなみにユーザーのコントローラのみでユーザーでありたいと考えております
$this->User->recursive = 1;
$this->set('user', $this->User->find('first', array('conditions'=>array('id'=>666)));
この結果、この配列の豊富な
array(
'Use' => array(
'id' => 666,
'name' => 'Alexander'
),
'Address' => array(
'id' => 123,
'zip' => 555
),
'Contact' => array(
'id' => 432,
'phone' => '555-1515'
));