<?xml version="1.0" encoding="UTF-8"?><!-- generator="wordpress.com" -->
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	>

<channel>
	<title>aftersave &amp;laquo; WordPress.com Tag Feed</title>
	<link>http://wordpress.com/tag/aftersave/</link>
	<description>Feed of posts on WordPress.com tagged "aftersave"</description>
	<pubDate>Tue, 14 Oct 2008 16:22:51 +0000</pubDate>

	<generator>http://wordpress.com/tags/</generator>
	<language>en</language>

<item>
<title><![CDATA[CakePHP + timestamp]]></title>
<link>http://openil.wordpress.com/?p=263</link>
<pubDate>Fri, 25 Apr 2008 18:12:51 +0000</pubDate>
<dc:creator>वीर</dc:creator>
<guid>http://blog.vee-u.com/2008/04/25/cakephp-timestamp/</guid>
<description><![CDATA[เวลา save แล้วอยากให้ CakePHP ใส่ timestamp ให้ด้ว]]></description>
<content:encoded><![CDATA[<p>เวลา save แล้วอยากให้ CakePHP ใส่ timestamp ให้ด้วยเวลาที่ row ที่ add เข้าไปถูก create เป็นครั้งแรก. ประมาณว่าต้องการเก็บว่า row นั้นสร้างมาแต่เมื่อไหร่. ผมใช้ callback function ใน model เอา เขียนสั้นๆ ก็เป็นอันใช้ได้.</p>
<p>[sourcecode language='php']class Corpus extends AppModel {<br />
    function afterSave($created) {<br />
        if($this->id && $created) {<br />
            $data = $this->read();<br />
            $data[$this->name]["created"] = date("Y-m-d H:i:s");<br />
            $this->save($data);<br />
        }<br />
    }<br />
}[/sourcecode]</p>
<p>เวลาสั่ง save จาก controller, afterSave ก็จะถูกเรียกแล้วก็ไปแก้ column: created ให้เป็นเวลาปัจจุบัน. ถ้า row นั้นถูกสร้างขึ้นใหม่ (ตรวจสอบได้จาก $created).</p>
<p><strong>update #1:</strong> แต่จะให้ดีใช้ beforeSave ดีกว่า. จะได้ save ครั้งเดียวไปเลย (ตาม comment ของ พี่ป๊อก) แล้วก็ดูเป็นธรรมชาติดีด้วย :-).</p>
<p>[sourcecode language='php']class Corpus extends AppModel {<br />
    function beforeSave() {<br />
        $data[$this->name]["created"] = date("Y-m-d H:i:s");<br />
        return true;<br />
    }<br />
}[/sourcecode]</p>
<p>แต่ถ้า edit แต่ไม่ได้ create corpus ก็คงต้องวิธีมาตรวจสอบเอา.</p>
<p><strong>update #2: ลองดูอีกนิด จริงๆ แล้วไม่ต้องใช้ before/after save เลย. CakePHP ทำ timestamp ให้เองแบบที่ต้องการเลย โดยที่ไม่ต้องทำอะไร ... แป่ว</strong></p>
]]></content:encoded>
</item>

</channel>
</rss>
