簡體   English   中英

save()函數Zend Framework

[英]save() function Zend Framework

我在Zend的文檔中找到了此功能,更具體地在“創建模型和數據庫表”部分( http://framework.zend.com/manual/1.12/en/learning.quickstart.create-model.html )中。

這在Application_Model_GuestbookMapper中:

public function save(Application_Model_Guestbook $guestbook)
{
    $data = array(
        'email'   => $guestbook->getEmail(),
        'comment' => $guestbook->getComment(),
        'created' => date('Y-m-d H:i:s'),
    );

    if (null === ($id = $guestbook->getId())) {
        unset($data['id']);
        $this->getDbTable()->insert($data);
    } else {
        $this->getDbTable()->update($data, array('id = ?' => $id));
    }
}

現在我想將其集成到我的控制器中,但是我不知道如何?

我創建了一個映射器的實例,並嘗試將信息從解碼后的json字符串傳遞給它,但仍然出現錯誤...:

public function indexAction()
{
   $mapper = new Application_Model_GuestbookMapper();
   $db = Zend_Db_Table_Abstract::getDefaultAdapter();

   $json = file_get_contents('http://data.appsforghent.be/poi/apotheken.json');
   $data = Zend_Json::decode($json);

   foreach($data['apotheken'] as $row)
   {
       $mapper->save();
   }
}

我知道我必須將$ data傳遞給save()函數,但是我不知道該怎么做...該模型不適合json-url,我只是想展示如何檢索和解碼json。

有誰能夠幫助我?

您需要傳遞給$ mapper-> save();的內容。 是Application_Model_Guestbook的實例。 因此,希望您有一個Application_Model_Guestbook類,您可以在其中定義將數據數組設置為其屬性的可能性,例如:

class Application_Model_Guestbook {
  private $email,$comment,$created;
  public function __construct($data) {
   $this->email = $data['email'];
   // etc add other variables
  }
  public function getEmail() {
   return $this->email;
  }
}

然后調用它,使用:

   foreach($data['apotheken'] as $row)
   {
       $guestbook = new Application_Model_Guestbook($row);
       $mapper->save($guestbook);
   }

我沒有對此進行專門的測試,但是它應該使您了解如何實現自己的目標。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM