CakePHP - Manual/Developing/Models/CustomMethods /wiki/Manual/Developing/Models/CustomMethods History/revisions of CakePHP/Manual/Developing/Models/CustomMethods en-us 2009-03-03 11:13:00 /wiki/Manual/Developing/Models/CustomMethods/show?time=2009-03-03+11%3A13%3A00 <div class="pageBefore"><img src="/wiki_/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" /></div><div class="page"> <b>Сравнение версий <a name=".manual.developing.models.custommethods" href="/wiki/Manual/Developing/Models/CustomMethods" class="">/Manual&nbsp;/&nbsp;Developing&nbsp;/&nbsp;Models&nbsp;/&nbsp;Custom&nbsp;Methods</a> за <a href="/wiki/Manual/Developing/Models/CustomMethods?time=2009-03-03+11%3A13%3A00">2009-03-03 11:13:00</a> и <a href="/wiki/Manual/Developing/Models/CustomMethods">2009-03-03 11:13:23</a></b><br /> <br /> <b>Добавлено:</b><br /> <div class="additions"><span class="missingpage">&lt;&lt; Переменные модели</span><a href="/wiki/Attributes/edit?add=1" title="Создать эту страницу">?</a> | <span class="missingpage">Источники данных &gt;&gt;</span><a href="/wiki/DataSources/edit?add=1" title="Создать эту страницу">?</a></div><br /> <b>Удалено:</b><br /> <div class="deletions"><span class="missingpage">Переменные модели</span><a href="/wiki/Attributes/edit?add=1" title="Создать эту страницу">?</a> | <span class="missingpage">Источники данных</span><a href="/wiki/DataSources/edit?add=1" title="Создать эту страницу">?</a></div></div> 2009-02-12 20:29:06 /wiki/Manual/Developing/Models/CustomMethods/show?time=2009-02-12+20%3A29%3A06 <div class="pageBefore"><img src="/wiki_/images/z.gif" width="1" height="1" border="0" alt="" style="display:block" align="top" /></div><div class="page"> <b>Сравнение версий <a href="/wiki/Manual/Developing/Models/CustomMethods" class="">/Manual&nbsp;/&nbsp;Developing&nbsp;/&nbsp;Models&nbsp;/&nbsp;Custom&nbsp;Methods</a> за <a href="/wiki/Manual/Developing/Models/CustomMethods?time=2009-02-12+20%3A29%3A06">2009-02-12 20:29:06</a> и <a href="/wiki/Manual/Developing/Models/CustomMethods?time=2009-03-03+11%3A13%3A00">2009-03-03 11:13:00</a></b><br /> <br /> <b>Добавлено:</b><br /> <div class="additions"><br /> Помимо того, что&nbsp;модели имеют свои функции, в&nbsp;классах моделей можно создавать свои собственные методы или&nbsp;определять собственные свойства.<br /> <br /> Любое действие, которое работает с&nbsp;сохранением или&nbsp;выборкой данных, лучше всего размещать в&nbsp;классах моделей. Эту&nbsp;концепцию часто называют &laquo;жирная модель&raquo;. <br /> <br /> <!--notypo--><div class="code"><code><span style="color: #000000"> <span style="color: #0000BB">&lt;?<br /></span><span style="color: #007700">class&nbsp;</span><span style="color: #0000BB">Example&nbsp;</span><span style="color: #007700">extends&nbsp;</span><span style="color: #0000BB">AppModel&nbsp;</span><span style="color: #007700">{<br /><br />&nbsp;&nbsp;&nbsp;function&nbsp;</span><span style="color: #0000BB">getRecent</span><span style="color: #007700">()&nbsp;{<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #0000BB">$conditions&nbsp;</span><span style="color: #007700">=&nbsp;array(<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #DD0000">'created&nbsp;BETWEEN&nbsp;(curdate()&nbsp;-&nbsp;interval&nbsp;7&nbsp;day)&nbsp;and&nbsp;(curdate()&nbsp;-&nbsp;interval&nbsp;0&nbsp;day))'<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;</span><span style="color: #007700">);<br />&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">find</span><span style="color: #007700">(</span><span style="color: #DD0000">'all'</span><span style="color: #007700">,&nbsp;</span><span style="color: #0000BB">compact</span><span style="color: #007700">(</span><span style="color: #0000BB">$conditions</span><span style="color: #007700">));<br />&nbsp;&nbsp;&nbsp;}<br />}<br /></span><span style="color: #0000BB">?&gt;</span> </span> </code></div><!--/notypo--><br /> <br /> Метод getRecent() теперь может быть использован в&nbsp;контроллере.<br /> <br /> <!--notypo--><div class="code"><code><span style="color: #000000"> <span style="color: #0000BB">&lt;?&nbsp;$recent&nbsp;</span><span style="color: #007700">=&nbsp;</span><span style="color: #0000BB">$this</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">Example</span><span style="color: #007700">-&gt;</span><span style="color: #0000BB">getRecent</span><span style="color: #007700">();&nbsp;</span><span style="color: #0000BB">?&gt;</span> </span> </code></div><!--/notypo--><br /> <br /> <span class="missingpage">Переменные модели</span><a href="/wiki/Attributes/edit?add=1" title="Создать эту страницу">?</a> | <span class="missingpage">Источники данных</span><a href="/wiki/DataSources/edit?add=1" title="Создать эту страницу">?</a></div></div>