"Alt" bilgi kaydetme

1 Cevap php

Ben basit bir CakePHP sitesi (1.2) var. Ben Bir Kişi düzenleyebilir ve kaydedebilirsiniz bir sayfa var. Yani bir kişi bir model ve denetleyici var.

Her Kişi Yorum tabloda, hiçbiri veya daha fazla yorum var. Yani Yorum modeli var, ve ben Yorum modeline benim Kişi model üzerinde bir hasMany ilişkisi var. Görünümü harika çalışıyor.

Benim soru görünümü Kişi sayfada, ben bir eklenti comment düğmesi olması. Bu nasıl çalışması gerekir? Ben Person denetleyici bir açıklama kayıt için kaydedebilir, ya da bir açıklama denetleyicisi oluşturmak ve bir kişi için dernek bulunuyor dışında kaydetmek dahil beklemeliyim?

PHP ile deneyimli, ama Cake yepyeni ediyorum.

Herhangi bir fikir? Ben sadece belirgin bir şey eksik düşünüyorum, ama ne yapacağımı emin değilim. Yorumlar sadece bir kişi bağlamında düzenlenmiş beri bu PHP ise benim eklenti yorum formu Person_id başvuru ve böylece ayrı bir denetleyici kullanmak gibi hissediyorum, ama basit bir model için bir denetleyici olması gibi hissediyorum, işe yaramaz kaydı.

Fikirler?

1 Cevap

Ben bir CakePHP uzman değilim, ama ben yine de kendi denetleyici olması mantıklı olacağını düşünüyorum. Ben bu CakePHP blog öğreticiler birini yaptığını hatırlıyorum ne sen açıklama modelinde yorum ve yazılan bağlantı ihtiyaç olmasıdır. Bu ondan var kod kısmı:

class Comment extends AppModel
{
  var $name = ‘Comment’;
  var $belongsTo = array(‘Person’);
}

Ve sonra bir kontrolör (comments_controller.php) gerekir:

class CommentsController extends AppController
{
  var $name = ‘Comments’;
  var $scaffold;
}

Bazı SQL:

CREATE TABLE comments (
  id INT UNSIGNED AUTO_INCREMENT PRIMARY KEY,
  author VARCHAR(50),
  comment TEXT,
  person_id INT,
  created DATETIME DEFAULT NULL,
  modified DATETIME DEFAULT NULL
);

$scaffold sizin için bir CRUD uygulaması oluşturur, böylece tarayıcınızda yorum / gittiğinizde olabilir c REATE, r ead, {[(3) }] pdate ve d elete yorumlar. Gördüğünüz gibi, burada yer yok çok. Tüm ihtiyacınız veritabanı tabloları ve person_id sağlamak için biraz mantık.

(Lütfen kişi / görünümünde) Yorum kaydetmek için:

<h2>Add comment</h2>
<?php
echo $form->create(‘Comment’, array(‘action’=>‘add/’.$person[‘Person’][‘id’]);
echo $form->input(‘author’);
echo $form->input(‘content’);
echo $form->submit(‘Add comment’);
echo $form->end();
?>

Ve CommentsController içinde:

function add($id = NULL) {
  if (!empty($this->data)) {
    $this->data['Comment']['person_id'] = $id;
    $this->data['Comment']['id'] = '';
    if ($this->Comment->save($this->data)) {
      $this->Session->setFlash('Commented added');
      $this->redirect($this->referer());
    }
  }
}

Yani temelde Cake kendisi tarafından ekler standart eklenti eylemi, üzerine. Şimdi mantıklı umuyoruz. O / yorum alır böylece Ayrıca, / ID eklemek / bir rota gerekebilir. Ben bu bölümü hakkında bilmiyorum. :)