Класс JsonView
Класс представления, используемый для JSON-ответов.
Установив ключ «_serialize» в вашем контроллере, вы можете указать переменную представления, которая должна быть сериализована в JSON и использована в качестве ответа на запрос. Это позволяет опустить представления и макеты, если вам нужно только вывести одну переменную представления в виде JSON-ответа.
В вашем контроллере вы можете сделать следующее:
$this->set(array('posts' => $posts, '_serialize' => 'posts'));
При отрисовке представления переменная представления $posts будет сериализована в JSON.
Вы также можете определить '_serialize' как массив. Это создаст верхнеуровневый объект, содержащий все именованные переменные представления:
$this->set(compact('posts', 'users', 'stuff')); $this->set('_serialize', array('posts', 'users'));
Это сгенерирует JSON-объект, который выглядит так:
{"posts": [...], "users": [...]}
Если вы не используете ключ _serialize, вам потребуется представление. Вы можете использовать расширенные представления для предоставления функциональности, подобной макетам.
Вы также можете включить поддержку JSONP, установив параметр _jsonp в значение true или строку, чтобы указать имя пользовательского параметра строки запроса, который будет содержать имя функции обратного вызова.
- Объект
-
Представление -
JsonView
Авторские права: Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
Лицензия: Лицензия MIT
С момента: CakePHP(tm) v 2.1.0
Расположение: Cake/View/JsonView.php
Подробное описание методов
__constructисходный код public
__construct( Controller $controller null )
Конструктор
Параметры
-
Controller$controllerнеобязательно null - Экземпляр контроллера.
Переопределяет
View::__construct() _serializeисходный код protected
_serialize( array $serialize )
Сериализация переменных представления
Специальные параметры
_jsonOptions Вы можете установить пользовательские параметры для json_encode() таким образом, например JSON_HEX_TAG | JSON_HEX_APOS.
Параметры
- массив
$serialize - Переменные представления, которые необходимо сериализовать
Возвращает
stringСериализованные данные
Выбрасывает
CakeExceptionCakeException
loadHelpersисходный код public
loadHelpers( )
Пропускает загрузку помощников, если это представление на основе _serialize.
Переопределяет
View::loadHelpers() renderисходный код public
render( string $view null , string $layout null )
Отображение JSON-представления.
Специальные параметры
_serialize Чтобы преобразовать набор переменных представления в JSON-ответ. Его значение может быть строкой для имени одной переменной или массивом для нескольких имён. Вы можете опустить параметр _serialize, и использовать обычное представление + макет также. _jsonp Включает поддержку JSONP и оборачивает ответ в функцию обратного вызова, предоставленную в строке запроса. - Установка в true включает параметр строки запроса по умолчанию "callback". - Установка в строковое значение использует предоставленный параметр строки запроса для поиска имени обратного вызова JSONP.
Параметры
- строка
$viewнеобязательно null - Отображаемое представление.
- строка
$layoutнеобязательно null - Отображаемый макет.
Возвращает
stringОтображаемое представление.
Выбрасывает
CakeExceptionЕсли в представлении произошла ошибка.
Переопределяет
View::render() Методы, унаследованные от Представление
__getисходный код public
__get( string $name )
Магический доступ к помощникам. Обеспечивает доступ к атрибутам, которые были устаревшими.
Параметры
- строка
$name - Имя атрибута для получения.
Возвращает
mixedсмешанное
__issetисходный код public
__isset( string $name )
Магическая проверка isset для устаревших атрибутов.
Параметры
- строка
$name - Имя атрибута для проверки.
Возвращает
booleanбулево
__setисходный код public
__set( string $name , mixed $value )
Магический доступ к устаревшим атрибутам.
Параметры
- строка
$name - Имя атрибута для установки.
- смешанное
$value - Значение атрибута для установки.
Возвращает
mixedсмешанное
_elementCacheисходный код protected
_elementCache( string $name , string $data , array $options )
Проверяет, кэширован ли элемент, и возвращает кэшированные данные, если они есть
Параметры
- строка
$name - Имя элемента
- строка
$data - Данные
- массив
$options - Параметры элемента
Возвращает
string|nullстрока|null
_evaluateисходный код protected
_evaluate( string $viewFile , array $dataForView )
Метод-песочница для оценки шаблона/скрипта представления.
Параметры
- строка
$viewFile - Имя файла представления
- массив
$dataForView - Данные для включения в отрисовываемое представление. Если пусто, будут использоваться текущие View::$viewVars.
Возвращает
stringОтображенный вывод
_getElementFileNameисходный код protected
_getElementFileName( string $name )
Ищет имя файла элемента, возвращает false при неудаче.
Параметры
- строка
$name - Имя элемента для поиска.
Возвращает
mixedСтрока имени файла элемента или false, если файл не найден.
_getExtensionsисходный код protected
_getExtensions( )
Получение расширений, которые могут использовать файлы представлений.
Возвращает
arrayМассив расширений, используемых файлами представлений.
_getLayoutFileNameисходный код protected
_getLayoutFileName( string $name null )
Возвращает имя файла макета для этого шаблона в виде строки.
Параметры
- строка
$nameнеобязательно null - Имя макета для поиска.
Возвращает
stringИмя файла макета (.ctp).
Выбрасывает
MissingLayoutExceptionпри невозможности найти макет
_getViewFileNameисходный код protected
_getViewFileName( string $name null )
Возвращает имя файла шаблона для данного действия (.ctp) в виде строки. Имена действий с заглавными буквами будут преобразовываться в нижний регистр! Это означает, что вы можете иметь имена действий с заглавными буквами, которые ссылаются на представления long_action_names.ctp.
Параметры
- строка
$nameнеобязательно null - Действие контроллера для поиска имени файла шаблона
Возвращает
stringИмя файла шаблона
Выбрасывает
MissingViewExceptionесли файл представления не был найден.
_pathsисходный код protected
_paths( string $plugin null , boolean $cached true )
Возвращает все возможные пути для поиска файлов представлений в порядке.
Параметры
- строка
$pluginнеобязательно null - Необязательное имя плагина для поиска файлов представлений.
- булево
$cachedнеобязательно true - Установите в false, чтобы принудительно обновить пути к представлениям. По умолчанию true.
Возвращает
arrayпути
_rendersource protected
_render( string $viewFile , array $data array() )
Отображает и возвращает вывод для указанного файла представления с его массивом данных. Обрабатывает родительские/расширенные представления.
Параметры
- строка
$viewFile - Имя файла представления
- массив
$dataнеобязательно array() - Данные для включения в отрисованное представление. Если пусто, будут использованы текущие View::$viewVars.
Возвращает
stringОтображенный вывод
Выбрасывает
CakeExceptionпри оставленном открытым блоке.
Вызывает
View.beforeRenderFile $this, array($viewFile)View.afterRenderFile $this, array($viewFile, $content)
_renderElementsource protected
_renderElement( string $file , array $data , array $options )
Отображает элемент и вызывает перед и после него обработчики рендеринга и записывает в кэш, если используется кэш.
Параметры
- строка
$file - Путь к файлу элемента
- массив
$data - Данные для отображения
- массив
$options - Параметры элемента
Возвращает
stringстрока
Вызывает
View.beforeRender $this, array($file)View.afterRender $this, array($file, $element)
addScriptsource public
addScript( string $name , string $content null )
Добавляет блок скрипта или другой элемент, который будет вставлен в $scripts_for_layout в <head /> макета документа.
Устаревшее
3.0.0 Будет удалено в 3.0. Заменено функциональностью блоков.Параметры
- строка
$name - Либо имя ключа для скрипта, либо содержимое скрипта. Имя может быть использовано для обновления/замены элемента скрипта.
- строка
$contentнеобязательно null - Содержимое добавляемого скрипта, необязательно.
См. также
View::start()appendsource public
append( string $name , mixed $value null )
Добавляет в существующий или новый блок. Добавление в новый блок создаст блок.
Параметры
- строка
$name - Имя блока
- смешанное
$valueнеобязательно null - Содержимое блока.
См. также
ViewBlock::concat()assignsource public
assign( string $name , mixed $value )
Устанавливает содержимое блока. Это перезапишет любое существующее содержимое.
Параметры
- строка
$name - Имя блока
- смешанное
$value - Содержимое блока.
См. также
ViewBlock::set()blockssource public
blocks( )
Получить имена всех существующих блоков.
Возвращает
arrayМассив, содержащий блоки.
См. также
ViewBlock::keys()elementsource public
element( string $name , array $data array() , array $options array() )
Отображает фрагмент PHP с предоставленными параметрами и возвращает HTML, XML или любую другую строку.
Это реализует концепцию элементов (или «частичных макетов»), а массив $params используется для передачи данных, которые будут использованы в элементе. Элементы могут быть помещены в кэш, улучшая производительность, используя опцию cache.
Параметры
- строка
$name - Имя файла шаблона в папке /app/View/Elements/ или
MyPlugin.templateдля использования шаблона элемента из MyPlugin. Если элемент не найден в плагине, будет произведен поиск по стандартному пути к представлениям. - массив
$dataнеобязательно array() - Массив данных, которые должны быть доступны отображаемому представлению (т. е. элементу).
- массив
$optionsнеобязательно array() - Массив параметров. Возможные ключи: -
cache- Может бытьtrue, чтобы включить кеширование, используя конфигурацию в View::$elementCache. Или массив. Если массив, следующие ключи могут быть использованы: -config- Используется для хранения кэшированного элемента в пользовательской конфигурации кэша. -key- Используется для определения ключа, используемого в Cache::write(). Он будет префикс сelement_-plugin- (устарело!) Загрузить элемент из определенного плагина. Этот параметр устарел и будет удален в CakePHP 3.0. ИспользуйтеPlugin.element_nameвместо него. -callbacks- Установите в значение true, чтобы вызвать обработчики вспомогательных функций beforeRender и afterRender для этого элемента. По умолчанию false. -ignoreMissing- Используется для разрешения отсутствующих элементов. Установите в значение true, чтобы не вызывать сообщения об ошибках.
Возвращает
stringОтображенный элемент
elementExistssource public
elementExists( string $name )
Проверяет существование элемента
Параметры
- строка
$name - Имя файла шаблона в папке /app/View/Elements/ или
MyPlugin.templateдля проверки шаблона элемента из MyPlugin. Если элемент не найден в плагине, будет произведен поиск по стандартному пути к представлениям.
Возвращает
booleanУспех
endsource public
end( )
Завершить блок захвата. Комплементарно View::start()
См. также
ViewBlock::end()existssource public
exists( string $name )
Проверить существование блока
Параметры
- строка
$name - Имя блока
Возвращает
booleanbool
extendsource public
extend( string $name )
Обеспечивает расширение/наследование представления или элемента. Представления могут расширять родительское представление и заполнять блоки в родительском шаблоне.
Параметры
- строка
$name - Представление или элемент, с которым нужно «расширить» текущий.
Выбрасывает
LogicExceptionпри расширении представления с самим собой или создании циклов расширения.
LogicExceptionпри расширении элемента, которого нет
fetchsource public
fetch( string $name , string $default '' )
Получить содержимое блока. Если блок пустой или не определен, вернётся ''.
Параметры
- строка
$name - Имя блока
- строка
$defaultнеобязательно '' - Текстовое значение по умолчанию
Возвращает
stringСодержимое блока или $default, если блок не существует.
См. также
ViewBlock::get()getsource public
get( string $var , mixed $default null )
Возвращает содержимое заданной переменной представления.
Параметры
- строка
$var - Переменная представления, содержимое которой нужно получить.
- смешанное
$defaultнеобязательно null - Значение по умолчанию/fallback содержимого $var.
Возвращает
mixedСодержимое переменной, если она задана, иначе $default.
getCurrentTypesource public
getCurrentType( )
Получить текущий тип представления
Возвращает
stringстрока
getEventManagersource public
getEventManager( )
Возвращает экземпляр менеджера CakeEventManager, который обрабатывает любые обратные вызовы. Можно использовать этот экземпляр для регистрации новых слушателей или обратных вызовов к событиям контроллера или создания собственных событий и их запуска по своему усмотрению.
Возвращает
CakeEventManagerCakeEventManager
getVarsource public
getVar( string $var )
Возвращает содержимое заданной(ых) переменной(ых) представления.
Устаревший
3.0.0 Будет удален в 3.0. Используйте View::get() вместо этого.Параметры
- строка
$var - Переменная представления, содержимое которой требуется.
Возвращает
mixedСодержимое указанной переменной, если она задана, в противном случае null.
getVarssource public
getVars( )
Возвращает список переменных, доступных в текущем контексте представления.
Возвращает
arrayМассив имен заданных переменных представления.
loadHelpersource public
loadHelper( string $helperName , array $settings array() )
Загружает помощник. Делегирует загрузку помощника методу HelperCollection::load().
Параметры
- строка
$helperName - Имя помощника для загрузки.
- массив
$settingsнеобязательный array() - Настройки для помощника.
Возвращает
HelperОбъект помощника.
См. также
HelperCollection::load()pluginSplitsource public
pluginSplit( string $name , boolean $fallback true )
Разделяет имя плагина в формате «точка» на имя плагина и имя файла. Если в $name нет точки, то индекс 0 будет null. Проверяет, загружен ли плагин, иначе имя файла останется неизменным для имён файлов, содержащих точку.
Параметры
- строка
$name - Имя плагина, которое требуется разделить.
- логическое значение
$fallbackнеобязательный true - Если true, использует плагин, установленный в текущем CakeRequest, когда загруженный плагин не найден.
Возвращает
arrayМассив с 2 индексами. 0 => имя плагина, 1 => имя файла
prependsource public
prepend( string $name , mixed $value null )
Добавляет в начало существующего или нового блока. Добавление в начало нового блока создаст блок.
Параметры
- строка
$name - Имя блока
- смешанный тип
$valueнеобязательный null - Содержимое блока.
См. также
ViewBlock::concat()renderCachesource public
renderCache( string $filename , string $timeStart )
Отображает кэшированный вид. Работает совместно с CacheHelper и Dispatcher для отображения кэшированных файлов представления.
Параметры
- строка
$filename - Файл кэша для включения
- строка
$timeStart - Время начала рендеринга страницы
Возвращает
booleanРезультат отображения кэшированного файла.
renderLayoutsource public
renderLayout( string $content , string $layout null )
Отображает макет. Возвращает вывод из _render(). Возвращает false при ошибке. Несколько переменных созданы для использования в макете.
-
title_for_layout- обратная совместимость с плацером, вы должны задать это значение, если хотите получить больший контроль. -
content_for_layout- содержит рендеренный файл представления. -
scripts_for_layout- Содержит контент, добавленный с помощью addScript(), а также любой контент в блоках 'meta', 'css' и 'script'. Они добавляются в указанном порядке.
Устаревшие функции:
-
$scripts_for_layoutустарела и будет удалена в CakePHP 3.0. Используйте вместо этого возможности блоков.meta,cssиscriptбудут заполнены соответствующими методами HtmlHelper. -
$title_for_layoutустарела и будет удалена в CakePHP 3.0. Используйте вместо этого блокtitle. -
$content_for_layoutустарела и будет удалена в CakePHP 3.0. Используйте вместо этого блокcontent.
Параметры
- строка
$content - Содержимое для рендеринга в представлении, заключенное в окружающий макет.
- строка
$layoutнеобязательный null - Имя макета
Возвращает
mixedРезультат рендеринга или false при ошибке
Выбрасывает
CakeExceptionесли в представлении произошла ошибка.
Вызывает
View.beforeLayout $this, array($layoutFileName)View.afterLayout $this, array($layoutFileName)
setsource public
set( string|array $one , string|array $two null )
Позволяет шаблону или элементу установить переменную, которая будет доступна в макете или другом элементе. Аналогично Controller::set().
Параметры
- строка|массив
$one - Строка или массив данных.
- строка|массив
$twoнеобязательный null - Значение в случае, если $one является строкой (которая затем работает как ключ). Не используется, если $one является ассоциативным массивом, в противном случае служит значениями для ключей $one.
startsource public
start( string $name )
Начать захват вывода для блока.
Параметры
- строка
$name - Имя блока для захвата.
См. также
ViewBlock::start()startIfEmptysource public
startIfEmpty( string $name )
Начать захват вывода для блока, если он пуст.
Параметры
- строка
$name - Имя блока для захвата.
См. также
ViewBlock::startIfEmpty()uuidsource public
uuid( string $object , string $url )
Генерирует уникальный, не случайный идентификатор DOM для объекта на основе типа объекта и целевого URL.
Параметры
- строка
$object - Тип объекта, например, 'форма' или 'ссылка'
- строка
$url - Целевой URL объекта
Возвращает
stringстрока
Методы, унаследованные от Object
_mergeVarssource protected
_mergeVars( array $properties , string $class , boolean $normalize true )
Объединяет свойство $property этого объекта со свойством в определении $class. Значение этого класса для свойства будет объединено поверх значения $class.
Это обеспечивает некоторую магию DRY, предоставляемую CakePHP. Если вы хотите ее отключить, переопределите этот метод как пустую функцию.
Параметры
- массив
$properties - Имя свойств для объединения.
- строка
$class - Класс для объединения свойства с ним.
- логическое значение
$normalizeнеобязательный true - Установите в true, чтобы выполнить свойство Hash::normalize() перед объединением.
_setsource protected
_set( array $properties array() )
Позволяет установить несколько свойств объекта в одной строке кода. Будет устанавливать только свойства, которые являются частью объявления класса.
Параметры
- массив
$propertiesнеобязательный array() - Ассоциативный массив, содержащий свойства и соответствующие значения.
_stopsource protected
_stop( integer|string $status 0 )
Остановите выполнение текущего скрипта. Оборачивает exit(), что облегчает тестирование.
Параметры
- целое число|строка
$statusнеобязательный 0 - см. http://php.net/exit для значений
dispatchMethodsource public
dispatchMethod( string $method , array $params array() )
Вызывает метод этого объекта с заданными параметрами. Предоставляет ОО оболочку для call_user_func_array.
Параметры
- строка
$method - Имя вызываемого метода
- массив
$paramsнеобязательный array() - Список параметров для использования при вызове $method
Возвращает
mixedВозвращает результат вызова метода
logsource public
log( string $msg , integer $type LOG_ERR , null|string|array $scope null )
Метод для записи сообщения в CakeLog. Подробнее о записи в журналы см. в CakeLog::write().
Параметры
- строка
$msg - Сообщение журнала
- целое число
$typeнеобязательно LOG_ERR - Константа типа ошибки. Определена в app/Config/core.php.
- null|строка|массив
$scopeнеобязательно null - Область(и), в которой создаётся сообщение журнала. Подробнее о областях ведения журнала см. в CakeLog::config().
Возвращаемое значение
booleanРезультат записи в журнал
requestActionsource public
requestAction( string|array $url , array $extra array() )
Вызывает метод контроллера из любой точки приложения. Может использоваться для связывания контроллеров или подключения плагинов к основному приложению. requestAction может возвращать отрисованный вид или значение, возвращаемое действием контроллера.
Внутренне этот метод использует Router::reverse() для преобразования параметра $url в строковый URL. Используйте форматы URL, совместимые с Router::reverse().
Передача данных POST и GET
Данные POST и GET могут быть смоделированы в requestAction. Используйте $extra['url'] для данных GET. Параметр $extra['data'] позволяет моделировать данные POST.
Параметры
- строка|массив
$url - URL в формате строки или массива. В отличие от других массивов URL в CakePHP, этот URL не будет автоматически обрабатывать переданные и именованные аргументы в параметре $url.
- массив
$extraнеобязательно array() - Если массив содержит ключ "return", он устанавливает AutoRender в true. Также может использоваться для отправки данных GET/POST и именованных/переданных аргументов.
Возвращаемое значение
mixedЛогическое значение true или false при успехе/неудачи, или содержимое отрисованного действия, если в $extra установлен ключ 'return'.
toStringsource public
toString( )
Преобразование объекта в строку. Каждый класс может переопределить этот метод по необходимости.
Возвращаемое значение
stringИмя этого класса
Постоянные значения, унаследованные от View
TYPE_ELEMENT, TYPE_LAYOUT, TYPE_VIEW |
Краткое описание свойств
Свойства, унаследованные от View
$_currentsource
protected string
Файл представления, который в данный момент обрабатывается. Используется для разрешения родительских файлов.
null $_currentTypesource
protected string
В данный момент обрабатывается элемент. Используется для поиска родительских фрагментов для элементов.
'' $_eventManagersource
protected CakeEventManager
Экземпляр CakeEventManager, который использует этот объект View для отправки внутренних событий. Обычно менеджер совместно используется с контроллером, поэтому можно регистрировать события представления в слое контроллера.
null $_eventManagerConfiguredsource
protected boolean
Был ли уже настроен менеджер событий для этого объекта
false $_parentssource
protected array
Имена представлений и их родителей, используемых с View::extend();
array() $_passedVarssource
protected array
Список переменных для сбора из связанного контроллера.
array( 'viewVars', 'autoLayout', 'ext', 'helpers', 'view', 'layout', 'name', 'theme', 'layoutPath', 'viewPath', 'request', 'plugin', 'passedArgs', 'cacheAction' )
$_stacksource
protected array
Стек содержимого, используемый для вложенных шаблонов, которые все используют View::extend();
array() $autoLayoutsource
public boolean
Включает или отключает обычный режим CakePHP применения файлов макетов. Включено по умолчанию. Отключение означает, что макеты не будут автоматически применяться к отображаемым представлениям.
true $cacheActionsource
public mixed
Используется для определения методов контроллера, которые будут кэшироваться.
See
Controller::$cacheActionfalse $elementCachesource
public string
Конфигурация кэша, которую View будет использовать для хранения кэшированных элементов. Изменение этого параметра изменит конфигурацию по умолчанию, под которой хранятся элементы. Вы также можете выбрать конфигурацию кэша для каждого элемента.
See
View::element()'default' $elementCacheSettingssource
public array
Настройки кэша элементов
See
View::_elementCache();View::_renderElement()array() $requestsource
public CakeRequest
Экземпляр объекта CakeRequest, содержащий информацию о текущем запросе. Этот объект содержит всю информацию о запросе и несколько методов для чтения дополнительной информации о запросе.
Свойства-маги, унаследованные от View
$Cachesource
public CacheHelper
$Formsource
public FormHelper
$Htmlsource
public HtmlHelper
$Numbersource
public NumberHelper
$Paginatorsource
public PaginatorHelper
$Sessionsource
public SessionHelper
$Textsource
public TextHelper
$Timesource
public TimeHelper
© 2005–2016 The Cake Software Foundation, Inc.
Licensed under the MIT License.
CakePHP is a registered trademark of Cake Software Foundation, Inc.
We are not endorsed by or affiliated with CakePHP.
http://api.cakephp.org/2.7/class-JsonView.html