Home PageКаталог Изменения НовыеКомментарии Пользователи Регистрация
CakePHP: Manual/Developing/Controllers/Attributes ...
Это старая версия Manual/Developing/Controllers/Attributes за 2009-02-06 23:25:13..

Переменные контроллера

$name


Пользователям PHP4 определение контроллеров следует начинать с использования переменной $name. Этой переменной должно быть присвоено имя контроллера. Обычно, это множественное число имени основной модели, которую использует контроллер. Это поможет CakePHP разобраться с именованием.


<?php

#   пример использования переменной $name 

class RecipesController extends AppController {
   var 
$name 'Recipes';
}

?>

$components, $helpers и $uses


Следующие, наиболее часто используемые переменные, скажут CakePHP какие компоненты, хелперы и модели вы будете использовать в связке с текущим контроллером. Использование этих переменных сделает эти MVC классы доступными для контроллера, как переменные класса ($this->ModelName, например).



Контроллер имеет доступ по умолчанию к его основной модели. Наш RecipesController будет иметь доступ к модели Recipe таким образом $this->Recipe. Однако, если подключаете к контроллеру дополнительные модели через переменную $uses, то имя основной модели текущего контроллера так же должно быть указано. Это проиллюстрировано в примере ниже.


Html, Form, и Session хелперы всегда доступны по умолчанию, как SessionComponent. Далее в руководстве мы узнаем больше об этих классах.


Давайте посмотрим как сказать контроллеру CakePHP, что вы собираетесь использовать дополнительные MVC классы.


<?php
class RecipesController extends AppController {
    var 
$name 'Recipes';

    var 
$uses = array('Recipe''User');
    var 
$helpers = array('Ajax');
    var 
$components = array('Email');
}
?>


Каждая из этих переменных соединена с их унаследованными значениями. Таким образом, нет необходимости переопределять, например Form хелпер или что-то другое, что определено в вашем App контроллере.

$layout и $pageTitle


В контроллере CakePHP существует несколько переменных, которые дают вам контроль над отображением внутри макета (layout).



 
Комментарии
«через через ", повторение нашел
fors.elsystems.ru (2009-08-03 16:45:06)
В версии 1.3, вот это работать не будет:
$this->pageTitle = 'SEO заголовок';

Покопался в коде, нашел что можно сделать просто вот так:
$this->set('title_for_layout', 'SEO заголовок');

можно присваивать в любом экшене контроллера
fidzina.TeNeT.Odessa.UA (2010-05-17 16:08:25)
ребят подскажите пожалуйста, можно ли использовать контроллер не объявляя модель и таблицу в базе!? Для того чтобы допустим выводить статические страницы!!!

Заранее Спасибо!
pppoe32.net221.omkc.ru (2010-08-26 19:11:54)
Можно, поищи хорошенько, где то это уже обсуждали на русском.
А вообще для статических страниц есть views/pages
178.34.27.45 (2010-08-30 23:10:53)
Добавить комментарий:

Файлов нет. [Показать файлы/форму]