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