CakePHP - Manual/Developing/Controllers/Methods /wiki/Manual/Developing/Controllers/Methods History/revisions of CakePHP/Manual/Developing/Controllers/Methods en-us 2009-02-08 16:19:56 /wiki/Manual/Developing/Controllers/Methods/show?time=2009-02-08+16%3A19%3A56 <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.controllers.methods" href="/wiki/Manual/Developing/Controllers/Methods" class="">/Manual&nbsp;/&nbsp;Developing&nbsp;/&nbsp;Controllers&nbsp;/&nbsp;Methods</a> за <a href="/wiki/Manual/Developing/Controllers/Methods?time=2009-02-08+16%3A19%3A56">2009-02-08 16:19:56</a> и <a href="/wiki/Manual/Developing/Controllers/Methods">2009-02-08 16:21:12</a></b><br /> <br /> <b>Добавлено:</b><br /> <div class="additions"><a name="h787-1"></a><h3>Другие полезные методы</h3></div><br /> <b>Удалено:</b><br /> <div class="deletions"><a name="h787-1"></a><h3>Other Useful Methods</h3></div></div> 2009-02-08 15:34:03 /wiki/Manual/Developing/Controllers/Methods/show?time=2009-02-08+15%3A34%3A03 <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/Controllers/Methods" class="">/Manual&nbsp;/&nbsp;Developing&nbsp;/&nbsp;Controllers&nbsp;/&nbsp;Methods</a> за <a href="/wiki/Manual/Developing/Controllers/Methods?time=2009-02-08+15%3A34%3A03">2009-02-08 15:34:03</a> и <a href="/wiki/Manual/Developing/Controllers/Methods?time=2009-02-08+16%3A19%3A56">2009-02-08 16:19:56</a></b><br /> <br /> <b>Добавлено:</b><br /> <div class="additions"><div class="indent"> <strong>afterFilter()</strong><br /> <strong>afterRender()</strong></div> Если $this-&gt;data['Order']['destination'] равно &#147;Old Towne Bakery&#148;, postConditions преобразует это&nbsp;условие в&nbsp;массив, подходящий для&nbsp;использования в&nbsp;Model-&gt;findAll(). В&nbsp;данном случае, array(<!--notypo-->&quot;Order.destination<!--/notypo-->" =&gt; &#147;Old Towne Bakery&#148;).<br /> requestAction лучше всего использовать в&nbsp;связке с&nbsp;кэшированными элементами – как&nbsp;способ выборки данных для&nbsp;элемента перед отображением. Давайте рассмотрим пример вставки элемента &#147;latest comments&#148; в&nbsp;макет. Во-первых, мы&nbsp;должны создать функцию контроллера, которая вернет данные.<br /> // controllers/comments_controller.php<br /> class <span class="missingpage">Comments&nbsp;Controller</span><a href="/wiki/CommentsController/edit?add=1" title="Создать эту страницу">?</a> extends <span class="missingpage">App&nbsp;Controller</span><a href="/wiki/AppController/edit?add=1" title="Создать эту страницу">?</a> {<br /> <div class="indent"><div class="indent">function latest() {<br /> <div class="indent"><div class="indent">return $this-&gt;Comment-&gt;find('all', array('order' =&gt; '<span class="missingpage">Comment.created</span><a href="/wiki/Comment/created/edit?add=1" title="Создать эту страницу">?</a> DESC', 'limit' =&gt; 10));</div></div></div></div> Если мы&nbsp;сейчас создадим простой элемент для&nbsp;вызова функции:<br /> // views/elements/latest_comments.ctp<br /> $comments = $this-&gt;requestAction('/comments/latest');<br /> foreach($comments as $comment) {<br /> <div class="indent"><div class="indent">echo $comment['Comment']['title'];</div></div> Мы&nbsp;теперь можем разместить этот элемент где&nbsp;угодно для&nbsp;вывода данных:<br /> &lt;? echo $this-&gt;element('latest_comments'); ?&gt;<br /> Таким образом, когда бы&nbsp;элемент не&nbsp;вызывался, будет сделан запрос контроллеру получить данные. Однако, согласно предупреждению, лучше использовать кэширование, для&nbsp;предотвращения излишней нагрузки. Модифицируем вызов элемента таким образом:<br /> &lt;? echo $this-&gt;element('latest_comments', array('cache'=&gt;'+1 hour')); ?&gt;<br /> В&nbsp;дополнение, requestAction теперь принимает массив в&nbsp;стиле cake-url:<br /> &lt;? echo $this-&gt;requestAction(array('controller' =&gt; 'articles', 'action' =&gt; 'featured'), array('return')); ?&gt;<br /> Это&nbsp;позволит requestAction делать вызов в&nbsp;обход Router::url, что&nbsp;увеличит скорость выполнения. Url&nbsp;массивы, это&nbsp;тоже самое, что&nbsp;использует <!--notypo-->HtmlHelper<!--/notypo-->::link с&nbsp;одной разницей. Если вы&nbsp;используете параметр с&nbsp;именем в&nbsp;вашем url, то&nbsp;requestAction url&nbsp;массив должен завернуть названный параметр в&nbsp;индекс 'named'. Поэтому requestAction соединяет названный параметр таким образом Controller::params.<br /> &lt;? echo $this-&gt;requestAction('/articles/featured/limit:3'); ?&gt;<br /> В&nbsp;виде массива requestAction получится следующее:<br /> &lt;? echo $this-&gt;requestAction(array('controller' =&gt; 'articles', 'action' =&gt; 'featured', 'named' =&gt; array('limit' =&gt; 3))); ?&gt;<br /> В&nbsp;отличие от&nbsp;других мест, где&nbsp;url-массивы аналогичны url-строкам, requestAction обрабатывает их&nbsp;по разному. <br /> Когда используете url-массив в&nbsp;связке с&nbsp;requestAction() вы&nbsp;должны определить все&nbsp;параметры которые вам&nbsp;могут понадобиться в&nbsp;запрашиваемом действии. Включая параметры типа $this-&gt;data и $this-&gt;params['form'].<br /> <span class="missingpage">&lt;&lt; Переменный контроллера</span><a href="/wiki/Attributes/edit?add=1" title="Создать эту страницу">?</a> | <span class="missingpage">Компоненты &gt;&gt;</span><a href="/wiki/Components/edit?add=1" title="Создать эту страницу">?</a></div><br /> <b>Удалено:</b><br /> <div class="deletions">afterFilter()<br /> afterRender()<br /> Если $this-&gt;data['Order']['destination'] равно &#147;Old Towne Bakery&#148;, postConditions преобразует это&nbsp;условие в&nbsp;массив, подходящий для&nbsp;использования в&nbsp;Model-&gt;findAll(). В&nbsp;данном случае, array("<span class="missingpage">Order.destination</span><a href="/wiki/Order/destination/edit?add=1" title="Создать эту страницу">?</a>" =&gt; &#147;Old Towne Bakery&#148;).</div></div> 2009-02-08 15:03:54 /wiki/Manual/Developing/Controllers/Methods/show?time=2009-02-08+15%3A03%3A54 <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/Controllers/Methods" class="">/Manual&nbsp;/&nbsp;Developing&nbsp;/&nbsp;Controllers&nbsp;/&nbsp;Methods</a> за <a href="/wiki/Manual/Developing/Controllers/Methods?time=2009-02-08+15%3A03%3A54">2009-02-08 15:03:54</a> и <a href="/wiki/Manual/Developing/Controllers/Methods?time=2009-02-08+15%3A34%3A03">2009-02-08 15:34:03</a></b><br /> <br /> <b>Добавлено:</b><br /> <div class="additions">Используйте этот метод для&nbsp;того, чтобы получить отправленные модели данные (из <!--notypo-->HtmlHelper<!--/notypo-->-совместимых инпутов) и&nbsp;использовать их&nbsp;в качестве условия для&nbsp;функции find.. Метод postConditions позволяет быстро создать поисковую логику. Например, пользователь-администратор хочет получать из&nbsp;заказов информацию, чтобы знать какой товар надо отгружать. Вы&nbsp;можете использовать <!--notypo-->FormHelper<!--/notypo--> и&nbsp;<!--notypo-->HtmlHelper<!--/notypo-->, чтобы быстро создать форму для&nbsp;модели Order. Далее действие контроллера может использовать данные из&nbsp;формы в&nbsp;качестве условия поиска:<br /> //Давайте получим заказы, в&nbsp;которых минимум 4 позиции и&nbsp;содержащие 'Ye Olde'<br /> Операторы нужно передавать в&nbsp;порядке, соответствующем, размещению элементов в&nbsp;массиве $this-&gt;data. Поскольку num_items &ndash; первый элемент, то&nbsp;оператор '&gt;=' относится к&nbsp;нему.<br /> Третий параметр позволяет сообщить <!--notypo-->CakePHP<!--/notypo--> какой логический SQL&nbsp;оператор следует использовать между условиями поиска. Для&nbsp;этого используйте строки 'AND', 'OR' и&nbsp;'XOR'.<br /> В&nbsp;завершение, если последний параметр установлен в&nbsp;true, и $op параметр является массивом, то&nbsp;поля, не&nbsp;включенные в $op, не&nbsp;будут включены в&nbsp;возвращаемое условие.<a name="h787-1"></a><h3>paginate</h3> Этот метод используется для&nbsp;постраничной разбивки данных, выбранных вашей моделью. Вы&nbsp;можете установить количество страниц, условия выборки для&nbsp;модели и&nbsp;другое. Читайте далее в&nbsp;руководстве детали использования метода paginate.<a name="h787-2"></a><h3>requestAction</h3> <div class="indent"> <strong>requestAction(string $url, array $options)</strong></div> Эта&nbsp;функция вызывает действие контроллера из&nbsp;любого места и&nbsp;возвращает данные после выполнения этого действия. $url <!--notypo-->CakePHP<!--/notypo-->-родственный URL&nbsp;(/controllername/actionname/params). Дополнительные данные для&nbsp;получающего действия передавайте через массив $options.<br /> Вы&nbsp;можете использовать requestAction() для&nbsp;получения полностью выполненного отображения, передав 'return' в $options: requestAction($url, array('return'));<br /> <span class="cite">Использование requestAction без&nbsp;кэширования приводит к&nbsp;низкой производительности. Этот метод редко подходит для&nbsp;использования в&nbsp;модели или&nbsp;контроллере.</span></div><br /> <b>Удалено:</b><br /> <div class="deletions">Используйте этот метод для&nbsp;того, чтобы получить отправленные модели данные (из <!--notypo-->HtmlHelper<!--/notypo-->-совместимых инпутов) и&nbsp;использовать их&nbsp;в качестве условия для&nbsp;функции find.. Метод postConditions позволяет быстро создать поисковую логику. Например, пользователь-администратор хочет получать из&nbsp;заказов информацию, чтобы знать какой товар надо отгружать. Вы&nbsp;можете использовать <!--notypo-->FormHelper<!--/notypo--> и&nbsp;"<span class="missingpage">Html&nbsp;Helper</span><a href="/wiki/HtmlHelper/edit?add=1" title="Создать эту страницу">?</a>", чтобы быстро создать форму для&nbsp;модели Order. Далее действие контроллера может использовать данные из&nbsp;формы в&nbsp;качестве условия поиска:<br /> //Давайте получим заказы, в&nbsp;которых минимум 4 позиции и&nbsp;содеражщие 'Ye Olde'</div></div> 2009-02-08 13:27:31 /wiki/Manual/Developing/Controllers/Methods/show?time=2009-02-08+13%3A27%3A31 <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/Controllers/Methods" class="">/Manual&nbsp;/&nbsp;Developing&nbsp;/&nbsp;Controllers&nbsp;/&nbsp;Methods</a> за <a href="/wiki/Manual/Developing/Controllers/Methods?time=2009-02-08+13%3A27%3A31">2009-02-08 13:27:31</a> и <a href="/wiki/Manual/Developing/Controllers/Methods?time=2009-02-08+15%3A03%3A54">2009-02-08 15:03:54</a></b><br /> <br /> <b>Добавлено:</b><br /> <div class="additions"><div class="indent"><div class="indent">} </div></div> Первый параметр должен содержать сообщение, которое требуется вывести. Второй параметр &ndash; <!--notypo-->CakePHP<!--/notypo-->-родственный URL. <!--notypo-->CakePHP<!--/notypo--> выведет $message на $pause секунд перед перенаправлением пользователя.<a name="h787-1"></a><h3>Callbacks</h3> <!--notypo-->CakePHP<!--/notypo--> контроллеры снабжены колбеками (callback &ndash; обратный вызов). Вы&nbsp;можете использовать их&nbsp;для вставки некоторого кода, который будет выполняться перед или&nbsp;после выполнения действия контроллера.<br /> <div class="indent"> <strong>beforeFilter()</strong></div> Эта&nbsp;функция выполняется перед каждым действием контроллера. Это&nbsp;удобное место для&nbsp;проверки активной сессии или&nbsp;прав пользователя. <br /> <div class="indent"> <strong>beforeRender()</strong></div> Вызывается после выполнения логики действия, но&nbsp;перед вызовом отображения. Этот колбек не&nbsp;так часто используется, но&nbsp;может понадобиться, если вы&nbsp;вызываете вручную рендеринг до&nbsp;завершения действия.<br /> afterFilter()<br /> Вызывается после каждого действия контроллера.<br /> afterRender()<br /> Вызывается после выполнения действия и&nbsp;отображения.<br /> <!--notypo-->CakePHP<!--/notypo--> также поддерживает колбеки, относящиеся к&nbsp;скаффолдингу.<br /> <div class="indent"> <strong>_beforeScaffold($method)</strong></div> $method &ndash; имя&nbsp;вызванного метода, например index, edit, и&nbsp;т.д.<br /> <div class="indent"> <strong>_afterScaffoldSave($method)</strong></div> $method &ndash; имя&nbsp;вызванного метода, или&nbsp;edit, или&nbsp;update.<br /> <div class="indent"> <strong>_afterScaffoldSaveError($method)</strong></div> $method &ndash; имя&nbsp;вызванного метода, или&nbsp;edit, или&nbsp;update.<br /> <div class="indent"> <strong>_scaffoldError($method)</strong></div> $method &ndash; имя&nbsp;вызванного метода, например index, edit, и&nbsp;т.д.<a name="h787-2"></a><h3>Other Useful Methods</h3><a name="h787-3"></a><h3>constructClasses</h3> Этот метод загружает модели, требуемые контроллером. Этот процесс и&nbsp;так выполняется <!--notypo-->CakePHP<!--/notypo-->, но&nbsp;метод удобен, когда идет обращение к&nbsp;контроллеру извне. Например, вам&nbsp;понадобится <!--notypo-->CakePHP<!--/notypo--> в&nbsp;скрипте, выполняемом из&nbsp;командной строки или&nbsp;в&nbsp;другом варианте внешнего использования. В&nbsp;этом случае constructClasses() будет кстати.<a name="h787-4"></a><h3>referer</h3> Возвращает URL&nbsp;реферера для&nbsp;текущего запроса.<a name="h787-5"></a><h3>disableCache</h3> Используется для&nbsp;сообщения браузеру пользователя не&nbsp;кэшировать результаты текущего запроса. Это&nbsp;отличается от&nbsp;кэширования отображения, об&nbsp;этом будет рассказано далее.<a name="h787-6"></a><h3>postConditions</h3> <div class="indent"> <strong>postConditions(array $data, mixed $op, string $bool, boolean $exclusive)</strong></div> Используйте этот метод для&nbsp;того, чтобы получить отправленные модели данные (из <!--notypo-->HtmlHelper<!--/notypo-->-совместимых инпутов) и&nbsp;использовать их&nbsp;в качестве условия для&nbsp;функции find.. Метод postConditions позволяет быстро создать поисковую логику. Например, пользователь-администратор хочет получать из&nbsp;заказов информацию, чтобы знать какой товар надо отгружать. Вы&nbsp;можете использовать <!--notypo-->FormHelper<!--/notypo--> и&nbsp;"<span class="missingpage">Html&nbsp;Helper</span><a href="/wiki/HtmlHelper/edit?add=1" title="Создать эту страницу">?</a>", чтобы быстро создать форму для&nbsp;модели Order. Далее действие контроллера может использовать данные из&nbsp;формы в&nbsp;качестве условия поиска:<br /> function index() {<br /> <div class="indent"><div class="indent">$o = $this-&gt;Order-&gt;findAll($this-&gt;postConditions($this-&gt;data));<br /> $this-&gt;set('orders', $o);</div></div> Если $this-&gt;data['Order']['destination'] равно &#147;Old Towne Bakery&#148;, postConditions преобразует это&nbsp;условие в&nbsp;массив, подходящий для&nbsp;использования в&nbsp;Model-&gt;findAll(). В&nbsp;данном случае, array("<span class="missingpage">Order.destination</span><a href="/wiki/Order/destination/edit?add=1" title="Создать эту страницу">?</a>" =&gt; &#147;Old Towne Bakery&#148;).<br /> Если вы&nbsp;хотите использовать другой SQL-оператор, то&nbsp;передавайте его&nbsp;вторым параметром.<br /> /*<br /> содержимое $this-&gt;data<br /> array(<br /> <div class="indent"><div class="indent">'Order' =&gt; array(<br /> <div class="indent"><div class="indent">'num_items' =&gt; '4',<br /> 'referrer' =&gt; 'Ye Olde'<br /> </div></div>)</div></div> )<br /> */<br /> //Давайте получим заказы, в&nbsp;которых минимум 4 позиции и&nbsp;содеражщие 'Ye Olde'<br /> $o = $this-&gt;Order-&gt;findAll($this-&gt;postConditions(<br /> <div class="indent"><div class="indent">$this-&gt;data,<br /> array('&gt;=', 'LIKE')</div></div> ));</div><br /> <b>Удалено:</b><br /> <div class="deletions">Первый параметр должен содержать сообщение, которое требуется вывесли. Второй параметр &ndash; <!--notypo-->CakePHP<!--/notypo-->-родственный URL. <!--notypo-->CakePHP<!--/notypo--> выведет $message на $pause секунд перед перенаправлением пользователя.</div></div> 2009-02-08 12:27:43 /wiki/Manual/Developing/Controllers/Methods/show?time=2009-02-08+12%3A27%3A43 <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/Controllers/Methods" class="">/Manual&nbsp;/&nbsp;Developing&nbsp;/&nbsp;Controllers&nbsp;/&nbsp;Methods</a> за <a href="/wiki/Manual/Developing/Controllers/Methods?time=2009-02-08+12%3A27%3A43">2009-02-08 12:27:43</a> и <a href="/wiki/Manual/Developing/Controllers/Methods?time=2009-02-08+13%3A27%3A31">2009-02-08 13:27:31</a></b><br /> <br /> <b>Добавлено:</b><br /> <div class="additions"><div class="indent"> <strong>set(string $var, mixed $value)</strong><br /> <strong>render(string $action, string $layout, string $file)</strong></div> // Рендерит элемент в&nbsp;/views/elements/ajaxreturn.ctp<br /> $this-&gt;render('/elements/ajaxreturn');<br /> Вы&nbsp;так же&nbsp;можете определить другой файл отображения, используя третий параметр $file. Когда используете $file, не&nbsp;забывайте употреблять глобальные константы <!--notypo-->CakePHP<!--/notypo--> (например, VIEWS).<br /> Параметр $layout позволяет определить макет в&nbsp;который будет рендериться отображение.<a name="h787-1"></a><h3>redirect</h3> <div class="indent"> <strong>redirect(string $url, integer $status, boolean $exit)</strong></div> Метод, который вы&nbsp;будете использовать чаще всего &ndash; это&nbsp;redirect(). Эта&nbsp;функция берет первый параметр в&nbsp;виде родственного <!--notypo-->CakePHP<!--/notypo--> URL. <br /> Когда пользователь успешно выполнил заказ, вы&nbsp;возможно пожелаете перенаправить его&nbsp;в&nbsp;окно с&nbsp;информацией о&nbsp;получении продукции.<br /> function placeOrder() {<br /> <div class="indent"><div class="indent">//Логика завершения заказа представлена здесь<br /> if($success) {<br /> <div class="indent"><div class="indent">$this-&gt;redirect(array('controller' =&gt; 'orders', 'action' =&gt; 'thanks'));<br /> </div></div>} else {<br /> <div class="indent"><div class="indent">$this-&gt;redirect(array('controller' =&gt; 'orders', 'action' =&gt; 'confirm'));</div></div></div></div> Второй параметр redirect() позволяет вам&nbsp;определить HTTP статус-код, сопровождающий перенаправление. Возможно, вы&nbsp;захотите использовать 301 (удален навсегда) или&nbsp;303 (смотри другое), в&nbsp;зависимости от&nbsp;вида перенаправления.<br /> Метод будет выполнять exit() после перенаправления, пока вы&nbsp;не передаете третьим параметром false.<a name="h787-2"></a><h3>flash</h3> <div class="indent"> <strong>flash(string $message, string $url, integer $pause)</strong></div> Подобно redirect(), функция flash() используется для&nbsp;направления пользователя на&nbsp;новую страницу после выполнения операции. Отличие flash() в&nbsp;том, что&nbsp;он&nbsp;показывает сообщение перед отправлением пользователя по&nbsp;другому URL.<br /> Первый параметр должен содержать сообщение, которое требуется вывесли. Второй параметр &ndash; <!--notypo-->CakePHP<!--/notypo-->-родственный URL. <!--notypo-->CakePHP<!--/notypo--> выведет $message на $pause секунд перед перенаправлением пользователя.<br /> Для&nbsp;внутристраничных flash-сообщений смотрите <!--notypo-->SessionComponent<!--/notypo--> setFlash() функцию.</div><br /> <b>Удалено:</b><br /> <div class="deletions">set(string $var, mixed $value)<br /> render(string $action, string $layout, string $file)</div></div> 2009-02-08 00:06:47 /wiki/Manual/Developing/Controllers/Methods/show?time=2009-02-08+00%3A06%3A47 <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/Controllers/Methods" class="">/Manual&nbsp;/&nbsp;Developing&nbsp;/&nbsp;Controllers&nbsp;/&nbsp;Methods</a> за <a href="/wiki/Manual/Developing/Controllers/Methods?time=2009-02-08+00%3A06%3A47">2009-02-08 00:06:47</a> и <a href="/wiki/Manual/Developing/Controllers/Methods?time=2009-02-08+12%3A27%3A43">2009-02-08 12:27:43</a></b><br /> <br /> <b>Добавлено:</b><br /> <div class="additions"><a name="h787-1"></a><h3>render</h3> render(string $action, string $layout, string $file)<br /> Функция render() автоматически вызывается в&nbsp;конце каждого запрошенного действия контроллера. Этот метод выполняет вывод отображения (используя данные, которые вы&nbsp;передали с&nbsp;помощью функции set()), размещает отображение внутри макета и&nbsp;выводит его&nbsp;для пользователя.<br /> Файл отображения по&nbsp;умолчанию, используемый функцией render(), определен соглашением. Если запрошено действие search() контроллера <!--notypo-->RecipesController<!--/notypo-->, то&nbsp;файл отображения в&nbsp;/app/views/recipes/search.ctp будет визуализирован.<br /> class <span class="missingpage">Recipes&nbsp;Controller</span><a href="/wiki/RecipesController/edit?add=1" title="Создать эту страницу">?</a> extends <span class="missingpage">App&nbsp;Controller</span><a href="/wiki/AppController/edit?add=1" title="Создать эту страницу">?</a> {<br /> ...<br /> <div class="indent"><div class="indent">function search() {<br /> <div class="indent"><div class="indent">// Рендерит отображение /views/recipes/search.ctp<br /> $this-&gt;render();<br /> </div></div>}</div></div> ...<br /> }<br /> <!--notypo-->CakePHP<!--/notypo--> будет автоматически вызывать render после каждого действия (пока не&nbsp;установите $this-&gt;autoRender = false). Вы&nbsp;можете использовать это&nbsp;для назначения альтернативного файла отображения, присвоив в&nbsp;контроллере переменной $action нужное имя&nbsp;действия.<br /> Если $action начинается с&nbsp;'/', значит предполагается файл отображения из&nbsp;каталога /app/views. Это&nbsp;позволяет напрямую рендерить элементы, что&nbsp;очень полезно при&nbsp;ajax вызовах.</div></div> 2009-02-08 00:06:14 /wiki/Manual/Developing/Controllers/Methods/show?time=2009-02-08+00%3A06%3A14 <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/Controllers/Methods" class="">/Manual&nbsp;/&nbsp;Developing&nbsp;/&nbsp;Controllers&nbsp;/&nbsp;Methods</a> за <a href="/wiki/Manual/Developing/Controllers/Methods?time=2009-02-08+00%3A06%3A14">2009-02-08 00:06:14</a> и <a href="/wiki/Manual/Developing/Controllers/Methods?time=2009-02-08+00%3A06%3A47">2009-02-08 00:06:47</a></b><br /> <br /> <b>Добавлено:</b><br /> <div class="additions">Индексы массива будут преобразованы при&nbsp;передаче в&nbsp;отображение <br /> ('underscored_key' станет 'underscoredKey', и&nbsp;т.д.):</div><br /> <b>Удалено:</b><br /> <div class="deletions">Индексы массива будут преобразованы при&nbsp;передаче в&nbsp;отображение ('underscored_key' станет 'underscoredKey', и&nbsp;т.д.):</div></div>