Класс 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 или строку, чтобы указать имя пользовательского параметра строки запроса, который будет содержать имя функции обратного вызова.
- CakeObject
-
View -
JsonView
С версии: CakePHP(tm) v 2.1.0
Авторские права: Copyright (c) Cake Software Foundation, Inc. (http://cakefoundation.org)
Лицензия: MIT License
Расположение: 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() Методы, унаследованные от View
__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
$nameнеобязательный null - Имя макета для поиска.
Возвращает
stringИмя файла макета (.ctp).
Исключения
MissingLayoutExceptionесли макет не найден
_getViewFileName()source protected
_getViewFileName( string $name null )
Возвращает имя файла шаблона заданного действия (.ctp) в виде строки. Имена действий с использованием CamelCase будут преобразовываться в нижний регистр с символом подчеркивания! Это означает, что вы можете использовать LongActionNames, которые будут ссылаться на шаблоны вида long_action_names.ctp.
Параметры
- string
$nameнеобязательный null - Действие контроллера для поиска имени файла шаблона
Возвращает
stringИмя файла шаблона
Исключения
MissingViewExceptionесли файл шаблона не найден.
_paths()source protected
_paths( string $plugin null , boolean $cached true )
Возвращает все возможные пути для поиска файлов шаблонов в определенном порядке
Параметры
- string
$pluginнеобязательный null - Необязательное имя плагина для поиска файлов шаблонов.
- boolean
$cachedнеобязательный true - Установите в значение false, чтобы принудительно обновить пути к шаблонам. По умолчанию значение true.
Возвращает
arrayПути
_render()source protected
_render( string $viewFile , array $data array() )
Отображает и возвращает вывод для заданного имени файла шаблона с его массивом данных. Обрабатывает родительские/расширенные шаблоны.
Параметры
- string
$viewFile - Имя файла шаблона
- array
$dataнеобязательный 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
$contentнеобязательный null - Содержимое добавляемого скрипта, необязательно.
См. также
View::start()append()source public
append( string $name , mixed $value null )
Добавляет к существующему или новому блоку. Добавление к новому блоку создаст блок.
Параметры
- string
$name - Имя блока
- mixed
$valueнеобязательный 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
$dataнеобязательный array() - Массив данных, которые должны быть доступны для отображаемого шаблона (т. е. элемента)
- array
$optionsнеобязательный array() Массив опций. Возможные ключи: -
cache- Может бытьtrue, чтобы включить кэширование, используя конфигурацию в View::$elementCache. Или массив. Если массив, следующие ключи могут быть использованы: -config- Используется для хранения кэшированного элемента в пользовательской конфигурации кэша. -key- Используется для определения ключа, используемого в Cache::write(). Он будет префиксён сelement_-plugin- (устарело!) Загрузить элемент из определенного плагина. Эта опция устарела и будет удалена в CakePHP 3.0. ИспользуйтеPlugin.element_nameвместо нее. -callbacks- Установите в значение true, чтобы вызвать обратные вызовы helper 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 '' )
Извлечь содержимое блока. Если блок пуст или не определён, возвращается ''.
Параметры
- string
$name - Имя блока
- string
$defaultoptional '' - Текст по умолчанию
Возвращает
stringсодержимое блока или $default, если блок не существует.
См. также
ViewBlock::get()get()source public
get( string $var , mixed $default null )
Возвращает содержимое заданной переменной представления.
Параметры
- string
$var - Переменная представления, содержимое которой нужно получить.
- mixed
$defaultoptional null - Значение по умолчанию/резервное значение для $var.
Возвращает
mixedсодержимое переменной, если она задана, иначе $default.
getCurrentType()source public
getCurrentType( )
Получить текущий тип представления
Возвращает
stringgetEventManager()source public
getEventManager( )
Возвращает экземпляр менеджера CakeEventManager, обрабатывающий любые обратные вызовы. Вы можете использовать этот экземпляр для регистрации новых слушателей или обратных вызовов на события контроллера, или создавать свои собственные события и запускать их по своему усмотрению.
Возвращает
CakeEventManagergetVar()source public
getVar( string $var )
Возвращает содержимое заданной(ых) переменной(ых) представления.
Устарело
3.0.0 Будет удалено в 3.0. Используйте View::get() вместо этого.Параметры
- string
$var - Переменная представления, содержимое которой нужно получить.
Возвращает
mixedсодержимое переменной, если она задана, иначе null.
getVars()source public
getVars( )
Возвращает список переменных, доступных в текущем контексте представления.
Возвращает
arrayМассив имён установленных переменных представления.
loadHelper()source public
loadHelper( string $helperName , array $settings array() )
Загружает помощник. Делегирует HelperCollection::load() для загрузки помощника.
Параметры
- string
$helperName - Имя помощника для загрузки.
- array
$settingsoptional array() - Настройки помощника
Возвращает
Helperобъект помощника.
См. также
HelperCollection::load()pluginSplit()source public
pluginSplit( string $name , boolean $fallback true )
Разделяет имя плагина в формате «точка» на имя плагина и имя файла. Если в $name нет точки, то индекс 0 будет null. Проверяет, загружен ли плагин, иначе имя файла остаётся неизменным для имён файлов, содержащих точку.
Параметры
- string
$name - Имя плагина, которое нужно разделить.
- boolean
$fallbackoptional true - Если true, используется плагин, заданный в текущем CakeRequest, когда загруженный плагин не найден.
Возвращает
arrayМассив с 2 индексами. 0 => имя плагина, 1 => имя файла
prepend()source public
prepend( string $name , mixed $value null )
Добавляет в начало существующего или нового блока. Добавление в начало нового блока создаст блок.
Параметры
- string
$name - Имя блока
- mixed
$valueoptional null - Содержимое блока.
См. также
ViewBlock::concat()renderCache()source public
renderCache( string $filename , string $timeStart )
Отобразить кэшированный вид. Работает совместно с CacheHelper и Dispatcher для отображения кэшированных файлов представления.
Параметры
- string
$filename - Файл кэша для включения
- string
$timeStart - Время начала рендеринга страницы
Возвращает
booleanУспешность отображения кэшированного файла.
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вместо этого.
Параметры
- string
$content - Содержимое для отображения в представлении, заключённое в окружающий макет.
- string
$layoutoptional null - Имя макета
Возвращает
mixedОтрендеренный вывод или false при ошибке
Выбрасывает
CakeExceptionесли произошла ошибка в представлении.
Срабатывает
View.beforeLayout $this, array($layoutFileName)View.afterLayout $this, array($layoutFileName)
set()source public
set( string|array $one , string|array $two null )
Позволяет шаблону или элементу задать переменную, которая будет доступна в макете или другом элементе. Аналогично Controller::set().
Параметры
- string|array
$one - Строка или массив данных.
- string|array
$twooptional null Значение, если $one — строка (которая затем работает как ключ). Не используется, если $one — ассоциативный массив, в противном случае служит значениями для ключей $one.
start()source public
start( string $name )
Начать захват вывода для 'блока'
Параметры
- string
$name - Имя блока для захвата.
См. также
ViewBlock::start()startIfEmpty()source public
startIfEmpty( string $name )
Начать захват вывода для 'блока', если он пуст.
Параметры
- string
$name - Имя блока для захвата.
См. также
ViewBlock::startIfEmpty()uuid()source public
uuid( string $object , string $url )
Генерирует уникальный, не случайный ID DOM для объекта, на основе типа объекта и целевого URL.
Параметры
- string
$object - Тип объекта, например 'форма' или 'ссылка'
- string
$url - Целевой URL объекта
Возвращает
stringНаследованные методы из CakeObject
_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( )
Преобразование CakeObject в строку. Каждый класс может переопределить этот метод по мере необходимости.
Возвращаемое значение
строкаНазвание этого класса
Подробное описание свойств
$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.
https://api.cakephp.org/2.9/class-JsonView.html