Класс 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
С момента: CakePHP(tm) v 2.1.0
Авторское право: Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
Лицензия: Лицензия MIT
Расположение: Cake/View/JsonView.php
Наследуемые константы
Краткое описание свойств
-
$subDirpublicstringПредставления JSON всегда находятся в подкаталоге 'json' для представлений контроллеров.
Наследуемые магические свойства
Наследуемые свойства
-
Blocks,Helpers,_current,_currentType,_eventManager,_eventManagerConfigured,_parents,_passedVars,_paths,_pathsForPlugin,_scripts,_stack,autoLayout,cacheAction,elementCache,elementCacheSettings,ext,hasRendered,helpers,layout,layoutPath,name,passedArgs,plugin,request,response,theme,uuids,validationErrors,view,viewPath,viewVars
Краткое описание методов
- __construct() publicКонструктор
- _serialize() protectedСериализация переменных представления
- loadHelpers() publicПропуск загрузки хелперов, если это представление на основе _serialize.
- render() publicОтрисовка представления JSON.
Подробное описание методов
__construct()source public
__construct( Controller $controller null )
Конструктор
Параметры
-
Controller$controllerнеобязательно null - Экземпляр контроллера.
Переопределяет
View::__construct() _serialize()source protected
_serialize( array $serialize )
Сериализация переменных представления
Специальные параметры
_jsonOptions Вы можете установить пользовательские параметры для json_encode() таким образом, например JSON_HEX_TAG | JSON_HEX_APOS.
Параметры
- массив
$serialize - Переменные представления, которые нужно сериализовать
Возвращает
строкаСериализованные данные
Вызывает
CakeExceptionloadHelpers()source public
loadHelpers( )
Пропуск загрузки хелперов, если это представление на основе _serialize.
Переопределяет
View::loadHelpers() render()source public
render( string $view null , string $layout null )
Отрисовка представления JSON.
Специальные параметры
_serialize Для преобразования набора переменных представления в ответ JSON. Его значение может быть строкой для имени одной переменной или массивом для нескольких имен. Вы можете опустить параметр _serialize, и также использовать обычное представление + макет. _jsonp Включает поддержку JSONP и оборачивает ответ в функцию обратного вызова, предоставленную в строке запроса. - Установка значения в true включает параметр строки запроса по умолчанию "callback". - Установка значения в строку использует предоставленный параметр строки запроса для поиска имени обратного вызова JSONP.
Параметры
- строка
$viewнеобязательно null - Отображаемое представление.
- строка
$layoutнеобязательно null - Отображаемый макет.
Возвращает
строкаОтображенное представление.
Вызывает
CakeExceptionЕсли произошла ошибка в представлении.
Переопределяет
View::render() Методы, унаследованные от Представления
__get()source public
__get( string $name )
Магический доступ к хелперам. Обеспечивает доступ к атрибутам, которые устарели.
Параметры
- строка
$name - Имя атрибута для получения.
Возвращает
смешанное__isset()source public
__isset( string $name )
Магическая проверка isset для устаревших атрибутов.
Параметры
- строка
$name - Имя атрибута для проверки.
Возвращает
булево__set()source public
__set( string $name , mixed $value )
Магический доступ к устаревшим атрибутам.
Параметры
- строка
$name - Имя атрибута для установки.
- смешанное
$value - Значение атрибута для установки.
Возвращает
смешанное_elementCache()source protected
_elementCache( string $name , string $data , array $options )
Проверяет, кэширован ли элемент, и возвращает кэшированные данные, если они присутствуют.
Параметры
- строка
$name - Имя элемента
- строка
$data - Данные
- массив
$options - Параметры элемента
Возвращает
строка|null_evaluate()source protected
_evaluate( string $viewFile , array $dataForView )
Метод-песочница для оценки шаблона/скрипта представления.
Параметры
- строка
$viewFile - Имя файла представления
- массив
$dataForView Данные для включения в рендеринг представления. Если пусто, будут использоваться текущие View::$viewVars.
Возвращает
строкаРезультат рендеринга
_getElementFileName()source protected
_getElementFileName( string $name )
Находит имя файла элемента, возвращает false при неудаче.
Параметры
- строка
$name - Имя элемента для поиска.
Возвращает
смешанноеСтрока с именем файла элемента или false, если файл не найден.
_getExtensions()source protected
_getExtensions( )
Получить расширения, которые могут использовать файлы представления.
Возвращает
массивМассив расширений, используемых файлами представления.
_getLayoutFileName()source protected
_getLayoutFileName( string $name null )
Возвращает имя файла макета для этого шаблона в виде строки.
Параметры
- string
$nameoptional null - Имя макета для поиска.
Возвращает
stringИмя файла макета (.ctp).
Исключение
MissingLayoutExceptionесли макет не найден
_getViewFileName()source protected
_getViewFileName( string $name null )
Возвращает имя файла шаблона для заданного действия (.ctp) в виде строки. Имена действий с использованием CamelCase будут преобразованы в нижний регистр с символом подчеркивания! Это означает, что вы можете иметь LongActionNames, которые ссылаются на шаблоны long_action_names.ctp.
Параметры
- string
$nameoptional null - Действие контроллера для поиска файла шаблона.
Возвращает
stringИмя файла шаблона
Исключение
MissingViewExceptionесли файл шаблона не найден.
_paths()source protected
_paths( string $plugin null , boolean $cached true )
Возвращает все возможные пути для поиска файлов шаблонов в порядке приоритета.
Параметры
- string
$pluginoptional null - Необязательное имя плагина для поиска файлов шаблонов.
- boolean
$cachedoptional true - Установите в значение false, чтобы принудительно обновить пути к шаблонам. По умолчанию true.
Возвращает
arrayПути
_render()source protected
_render( string $viewFile , array $data array() )
Отображает и возвращает вывод для заданного имени файла шаблона с его массивом данных. Обрабатывает родительские/расширенные шаблоны.
Параметры
- string
$viewFile - Имя файла шаблона
- array
$dataoptional array() - Данные, которые необходимо включить в отображаемый шаблон. Если пусто, будут использоваться текущие View::$viewVars.
Возвращает
stringОтформатированный вывод
Исключение
CakeExceptionесли блок оставлен открытым.
Вызывает
View.beforeRenderFile $this, array($viewFile)View.afterRenderFile $this, array($viewFile, $content)
_renderElement()source protected
_renderElement( string $file , array $data , array $options )
Отображает элемент и вызывает обратные вызовы before и afterRender для него и записывает в кеш, если кеш используется.
Параметры
- string
$file - Путь к файлу элемента
- array
$data - Данные для отображения
- array
$options - Параметры элемента
Возвращает
stringВызывает
View.beforeRender $this, array($file)View.afterRender $this, array($file, $element)
addScript()source public
addScript( string $name , string $content null )
Добавляет блок скрипта или другой элемент для вставки в $scripts_for_layout в <head /> макета документа.
Устарело
3.0.0 Будет удалено в 3.0. Заменено функциональностью блоков.Параметры
- string
$name Имя ключа для скрипта или содержимое скрипта. Имя может использоваться для обновления/замены элемента скрипта.
- string
$contentoptional null - Содержимое добавляемого скрипта, необязательно.
См. также
View::start()append()source public
append( string $name , mixed $value null )
Добавляет к существующему или новому блоку. Добавление к новому блоку создаст блок.
Параметры
- string
$name - Имя блока
- mixed
$valueoptional null - Содержимое блока.
См. также
ViewBlock::concat()assign()source public
assign( string $name , mixed $value )
Устанавливает содержимое блока. Это перепишет любое существующее содержимое.
Параметры
- string
$name - Имя блока
- mixed
$value - Содержимое блока.
См. также
ViewBlock::set()blocks()source public
blocks( )
Получить имена всех существующих блоков.
Возвращает
arrayМассив, содержащий блоки.
См. также
ViewBlock::keys()element()source public
element( string $name , array $data array() , array $options array() )
Отображает фрагмент PHP с предоставленными параметрами и возвращает HTML, XML или любую другую строку.
Реализует концепцию элементов (или «частичных макетов»), и массив $params используется для отправки данных для использования в элементе. Элементы могут быть кэшированы, улучшая производительность, используя опцию cache.
Параметры
- string
$name Имя файла шаблона в папке /app/View/Elements/ или
MyPlugin.templateдля использования элемента шаблона из MyPlugin. Если элемент не найден в плагине, будет произведен поиск по стандартному пути к шаблонам.- array
$dataoptional array() - Массив данных, которые будут доступны для отображаемого шаблона (т.е. элемента).
- array
$optionsoptional 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Отображенный элемент
elementExists()source public
elementExists( string $name )
Проверяет наличие элемента
Параметры
- string
$name Имя файла шаблона в папке /app/View/Elements/ или
MyPlugin.templateдля проверки элемента шаблона из MyPlugin. Если элемент не найден в плагине, будет произведен поиск по стандартному пути к шаблонам.
Возвращает
booleanРезультат
end()source public
end( )
Завершить блок захвата. Комплементарная функция View::start()
См. также
ViewBlock::end()exists()source public
exists( string $name )
Проверить существование блока
Параметры
- string
$name - Имя блока
Возвращает
booleanextend()source public
extend( string $name )
Обеспечивает расширение/наследование шаблонов или элементов. Шаблоны могут расширять родительский шаблон и заполнять блоки в родительском шаблоне.
Параметры
- string
$name - Шаблон или элемент, которым нужно «расширить» текущий.
Исключение
LogicExceptionесли вы расширяете шаблон сам по себе или создаёте циклы расширения.
LogicException
если вы расширяете элемент, которого не существует
fetch()source public
fetch( string $name , string $default '' )
Извлечь содержимое блока. Если блок пуст или не определен, возвращается «''.
Параметры
- строка
$name - Имя блока
- строка
$defaultнеобязательно '' - Текс по умолчанию
Возвращает
строкаdefault Содержимое блока или $default, если блок не существует.
См. также
ViewBlock::get()get()source public
get( string $var , mixed $default null )
Возвращает содержимое заданной переменной представления.
Параметры
- строка
$var - Переменная представления, содержимое которой требуется.
- смешанный
$defaultнеобязательно null - Значение по умолчанию/резервное содержимое $var.
Возвращает
смешанныйСодержимое указанной переменной, если она задана, в противном случае $default.
getCurrentType()source public
getCurrentType( )
Получить текущий тип представления
Возвращает
строкаgetEventManager()source public
getEventManager( )
Возвращает экземпляр менеджера CakeEventManager, обрабатывающий любые обратные вызовы. Вы можете использовать этот экземпляр для регистрации новых слушателей или обратных вызовов к событиям контроллера или создания собственных событий и их запуска по своему усмотрению.
Возвращает
CakeEventManagergetVar()source public
getVar( string $var )
Возвращает содержимое заданной переменной представления (переменных)
Устаревшее
3.0.0 Будет удалено в 3.0. Используйте вместо этого View::get().Параметры
- строка
$var - Переменная представления, содержимое которой требуется.
Возвращает
смешанныйСодержимое указанной переменной, если она задана, в противном случае null.
getVars()source public
getVars( )
Возвращает список переменных, доступных в текущем контексте представления.
Возвращает
массивМассив имен установленных переменных представления.
loadHelper()source public
loadHelper( string $helperName , array $settings array() )
Загружает помощник. Делегирует загрузку помощника объекту HelperCollection::load().
Параметры
- строка
$helperName - Имя помощника для загрузки.
- массив
$settingsнеобязательно array() - Настройки помощника.
Возвращает
HelperСозданный объект помощника.
См. также
HelperCollection::load()pluginSplit()source public
pluginSplit( string $name , boolean $fallback true )
Разделяет имя плагина в формате «точка» на имя плагина и имя файла. Если в $name нет точки, индекс 0 будет null. Проверяет, загружен ли плагин, в противном случае имя файла остается неизменным для имён файлов, содержащих точку.
Параметры
- строка
$name - Имя плагина, которое требуется разделить.
- логический
$fallbackнеобязательно true - Если true, используется плагин, заданный в текущем CakeRequest, когда загруженный плагин не найден.
Возвращает
массивМассив с 2 индексами. 0 => имя плагина, 1 => имя файла
prepend()source public
prepend( string $name , mixed $value null )
Добавляет в начало существующего или нового блока. Добавление в начало нового блока создаст блок.
Параметры
- строка
$name - Имя блока
- смешанный
$valueнеобязательно null - Содержимое блока.
См. также
ViewBlock::concat()renderCache()source public
renderCache( string $filename , string $timeStart )
Выводит кэшированное представление. Работает совместно с CacheHelper и Dispatcher для вывода кэшированных файлов представления.
Параметры
- строка
$filename - Файл кэша для включения.
- строка
$timeStart - Время начала рендеринга страницы.
Возвращает
логическоеРезультат вывода кэшированного файла.
renderLayout()source 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 - Имя макета.
Возвращает
смешанныйОтрендеренный вывод или false при ошибке.
Исключения
CakeExceptionесли в представлении возникла ошибка.
Триггеры
View.beforeLayout $this, массив($layoutFileName)View.afterLayout $this, массив($layoutFileName)
set()source public
set( string|array $one , string|array $two null )
Позволяет шаблону или элементу установить переменную, которая будет доступна в макете или другом элементе. Аналогично Controller::set().
Параметры
- строка|массив
$one - Строка или массив данных.
- строка|массив
$twoнеобязательно null Значение, если $one является строкой (которая затем используется в качестве ключа). Не используется, если $one — ассоциативный массив, в противном случае служит значениями для ключей $one.
start()source public
start( string $name )
Начать захват вывода для блока.
Параметры
- строка
$name - Имя блока для захвата.
См. также
ViewBlock::start()startIfEmpty()source public
startIfEmpty( string $name )
Начать захват вывода для блока, если он пустой.
Параметры
- строка
$name - Имя блока для захвата.
См. также
ViewBlock::startIfEmpty()uuid()source public
uuid( string $object , string $url )
Генерирует уникальный, не случайный идентификатор DOM для объекта на основе типа объекта и целевого URL.
Параметры
- строка
$object - Тип объекта, например «форма» или «ссылка»
- строка
$url - Целевой URL объекта.
Возвращает
строкаМетоды, унаследованные от Object
_mergeVars()source protected
_mergeVars( array $properties , string $class , boolean $normalize true )
Объединяет свойства объекта $property со свойствами в определении $class. Значение свойства этого класса для свойства будет объединено поверх значения $class.
Это обеспечивает некоторые возможности DRY, предоставляемые CakePHP. Если вы хотите отключить эту функцию, переопределите этот метод как пустую функцию.
Параметры
- массив
$properties - Имя свойств для объединения.
- строка
$class - Класс для объединения свойства с ним.
- логическое значение
$normalizeдополнительно true - Установите в значение true, чтобы выполнить свойства через Hash::normalize() перед объединением.
_set()source protected
_set( array $properties array() )
Позволяет устанавливать несколько свойств объекта в одной строке кода. Будут установлены только те свойства, которые являются частью объявления класса.
Параметры
- массив
$propertiesдополнительно array() - Ассоциативный массив, содержащий свойства и соответствующие значения.
_stop()source protected
_stop( integer|string $status 0 )
Остановить выполнение текущего сценария. Оборачивает exit(), что упрощает тестирование.
Параметры
- целое число/строка
$statusдополнительно 0 - см. http://php.net/exit для значений
dispatchMethod()source public
dispatchMethod( string $method , array $params array() )
Вызывает метод этого объекта с заданными параметрами. Предоставляет объектно-ориентированный обертка для call_user_func_array
Параметры
- строка
$method - Имя вызываемого метода
- массив
$paramsдополнительно array() - Список параметров для использования при вызове $method
Возвращает
mixedРезультат вызова метода
log()source 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Успех записи в журнал
requestAction()source 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'.
toString()source public
toString( )
Преобразование объекта в строку. Каждый класс может переопределить этот метод по мере необходимости.
Возвращает
строкаНазвание этого класса
Подробное описание свойств
$subDirsource
public строка
Представления JSON всегда находятся в подкаталоге 'json' для представлений контроллеров.
'json'
© 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.8/class-JsonView.html