类 JsonView
用于 JSON 响应的视图类。
它允许您省略模板,如果您只需要发出 JSON 字符串作为响应。
在您的控制器中,您可以执行以下操作
$this->set(['posts' => $posts]);
$this->viewBuilder()->setOption('serialize', true);
当视图渲染时,$posts
视图变量将被序列化为 JSON。
您还可以设置多个视图变量进行序列化。这将创建一个包含所有命名视图变量的顶级对象
$this->set(compact('posts', 'users', 'stuff'));
$this->viewBuilder()->setOption('serialize', true);
以上将生成一个看起来像这样的 JSON 对象
{"posts": [...], "users": [...]}
您还可以将 'serialize'
设置为字符串或数组以仅序列化指定的视图变量。
如果您没有设置 serialize
选项,您将需要一个视图模板。您可以使用扩展视图来提供类似于布局的功能。
您还可以通过将 jsonp
选项设置为 true 或字符串来启用 JSONP 支持,以指定包含回调函数名称的自定义查询字符串参数名称。
常量
-
字符串
NAME_TEMPLATE ¶'templates'
用于 App::path() 的类型的常量。
-
字符串
PLUGIN_TEMPLATE_FOLDER ¶'plugin'
包含用于覆盖插件模板的文件的文件夹名称的常量。
-
字符串
TYPE_ELEMENT ¶'element'
视图文件类型 'element' 的常量
-
字符串
TYPE_LAYOUT ¶'layout'
视图文件类型 'layout' 的常量
-
字符串
TYPE_MATCH_ALL ¶'_match_all_'
视图可以使用的神奇 'match-all' 内容类型,以便在内容类型协商期间充当回退。
-
字符串
TYPE_TEMPLATE ¶'template'
视图文件类型 'template' 的常量。
属性摘要
-
$Blocks public @property
Cake\View\ViewBlock
-
$Breadcrumbs public @property
Cake\View\Helper\BreadcrumbsHelper
-
$Flash public @property
Cake\View\Helper\FlashHelper
-
$Form public @property
Cake\View\Helper\FormHelper
-
$Html public @property
Cake\View\Helper\HtmlHelper
-
$Number public @property
Cake\View\Helper\NumberHelper
-
$Paginator public @property
Cake\View\Helper\PaginatorHelper
-
$Text public @property
Cake\View\Helper\TextHelper
-
$Time public @property
Cake\View\Helper\TimeHelper
-
$Url public @property
Cake\View\Helper\UrlHelper
-
$_config protected
array<string, mixed>
运行时配置
-
$_configInitialized protected
bool
配置属性是否已使用默认值进行配置
-
$_current protected
字符串
当前正在渲染的视图文件。用于解析父文件。
-
$_currentType protected
字符串
当前正在渲染元素。用于为元素查找父片段。
-
$_defaultConfig protected
array<string, mixed>
默认配置选项。
-
$_eventClass protected
字符串
新事件对象的默认类名。
-
$_eventManager protected
Cake\Event\EventManagerInterface|null
此对象用于调度内部事件的 Cake\Event\EventManager 的实例。
-
$_ext protected
字符串
文件扩展名。默认为 ".php"。
-
$_helpers protected
Cake\View\HelperRegistry|null
助手集合
-
$_parents protected
array<string, string>
与 View::extend(); 一起使用的视图及其父级的名称。
-
$_passedVars protected
list<string>
要从关联控制器收集的变量列表。
-
$_paths protected
list<string>
保存路径数组。
-
$_pathsForPlugin protected
array<string, list<string>>
保存插件路径数组。
-
$_stack protected
list<string>
内容堆栈,用于所有使用 View::extend(); 的嵌套模板。
-
$_viewBlockClass protected
字符串
ViewBlock 类。
-
$autoLayout protected
bool
启用或禁用 CakePHP 的应用布局文件的常规模式。默认情况下启用。设置为 off 表示布局不会自动应用于渲染的模板。
-
$elementCache protected
字符串
视图将用于存储缓存元素的缓存配置。更改此配置将更改元素存储的默认配置。您也可以为每个元素选择缓存配置。
-
$helpers protected
array<string, array<string, mixed>>
要加载的助手的配置数组。
-
$layout protected
字符串
要渲染模板的布局文件的名称。指定的名称是
templates/layout/
中的布局文件名,不带 .php 扩展名。 -
$layoutPath protected
字符串
JSON 布局位于
Layouts/
的 JSON 子目录中 -
$name protected
字符串
创建视图(如果有)的控制器的名称。
-
$plugin protected
string|null
插件的名称。
-
$request protected
Cake\Http\ServerRequest
包含有关当前请求的信息的 \Cake\Http\ServerRequest 对象的实例。此对象包含有关请求的所有信息,以及用于读取有关请求的更多信息的几种方法。
-
$response protected
Cake\Http\Response
对响应对象的引用
-
$subDir protected
字符串
JSON 视图位于控制器的视图的 'json' 子目录中。
-
$template protected
字符串
要渲染的模板文件的名称。指定的名称是
templates/<SubFolder>/
中的文件名,不带 .php 扩展名。 -
$templatePath protected
字符串
包含此视图模板的子文件夹名称。
-
$theme 受保护
string|null
要使用的视图主题。
-
$viewVars 受保护
array<string, mixed>
变量数组
方法摘要
-
__construct() 公共
构造函数
-
__get() 公共
助手对象的魔术访问器。
-
_checkFilePath() 受保护
检查视图文件路径是否超出定义的模板路径。
-
_configDelete() 受保护
删除单个配置键。
-
_configRead() 受保护
读取配置键。
-
_configWrite() 受保护
写入配置键。
-
_createCell() 受保护
创建并配置单元实例。
-
_dataToSerialize() 受保护
返回要序列化的数据。
-
_elementCache() 受保护
为元素生成缓存配置选项。
-
_evaluate() 受保护
沙盒方法,用于评估模板/视图脚本。
-
_getElementFileName() 受保护
查找元素文件名,如果失败则返回false。
-
_getLayoutFileName() 受保护
返回此模板的布局文件名,以字符串形式表示。
-
_getSubPaths() 受保护
查找所有子模板路径,基于 $basePath。如果当前请求中定义了前缀,则此方法会将带前缀的模板路径添加到 $basePath 的前面,在嵌套的情况下级联。这基本上用于查找元素和布局的带前缀的模板路径。
-
_getTemplateFileName() 受保护
返回给定操作的模板文件名,以字符串形式表示。默认情况下,驼峰式操作名称将被转换为下划线分隔的名称。这意味着您可以使用 LongActionNames,它对应于 long_action_names.php 模板。您可以通过覆盖 _inflectTemplateFileName 来更改词形变化规则。
-
_inflectTemplateFileName() 受保护
将视图模板文件名称更改为下划线分隔的格式。
-
_paths() 受保护
按顺序返回查找视图文件的所有可能路径。
-
_render() 受保护
呈现并返回给定模板文件及其数据数组的输出。处理父/扩展模板。
-
_renderElement() 受保护
呈现元素,并触发其 before 和 afterRender 回调,如果使用缓存,则写入缓存。
-
_serialize() 受保护
序列化视图变量。
-
addHelper() 受保护
在
initialize()
方法中添加助手。 -
append() 公共
附加到现有或新的块。
-
assign() 公共
设置块的内容。这将覆盖任何现有内容。
-
blocks() 公共
获取所有现有块的名称。
-
cache() 公共
创建缓存的视图逻辑块。
-
cell() 受保护
呈现给定的单元。
-
configShallow() 公共
将提供的配置与现有配置合并。与
config()
对嵌套键进行递归合并不同,此方法进行简单合并。 -
contentType() 公共 静态
此视图类呈现的 MIME 类型。
-
disableAutoLayout() 公共
关闭 CakePHP 的布局文件应用的传统模式。布局不会自动应用于呈现的视图。
-
dispatchEvent() 公共
创建和分派事件的包装器。
-
element() 公共
使用提供的参数呈现一段 PHP 并返回 HTML、XML 或任何其他字符串。
-
elementExists() 公共
检查元素是否存在。
-
enableAutoLayout() 公共
启用或禁用 CakePHP 的布局文件应用的传统模式。默认情况下启用。设置为关闭意味着布局不会自动应用于呈现的视图。
-
end() 公共
结束捕获块。View::start() 的补充。
-
exists() 公共
检查块是否存在。
-
extend() 公共
提供模板或元素扩展/继承。模板可以扩展父模板并在父模板中填充块。
-
fetch() 公共
获取块的内容。如果块为空或未定义,将返回 ''。
-
get() 公共
返回给定视图变量的内容。
-
getConfig() 公共
返回配置。
-
getConfigOrFail() 公共
返回此特定键的配置。
-
getCurrentType() 公共
检索当前模板类型。
-
getElementPaths() 受保护
获取元素路径的迭代器。
-
getEventManager() 公共
返回此对象的 Cake\Event\EventManager 管理器实例。
-
getLayout() 公共
获取布局文件名称,以在其中呈现模板。指定的名称是
templates/layout/
中布局的文件名,不带 .php 扩展名。 -
getLayoutPath() 公共
获取布局文件的路径。
-
getLayoutPaths() 受保护
获取布局路径的迭代器。
-
getName() 公共
返回视图的控制器名称。
-
getPlugin() 公共
返回插件名称。
-
getRequest() 公共
获取请求实例。
-
getResponse() 公共
获取响应实例。
-
getSubDir() 公共
获取此模板文件的子目录。
-
getTemplate() 公共
获取要呈现的模板文件名称。指定的名称是
templates/<SubFolder>/
中的文件名,不带 .php 扩展名。 -
getTemplatePath() 公共
获取模板文件的路径。
-
getTheme() 公共
获取当前视图主题。
-
getVars() 公共
返回当前视图上下文中可用的变量列表。
-
helpers() 公共
获取此视图类使用的助手注册表。
-
initialize() 公共
初始化钩子方法。
-
isAutoLayoutEnabled() 公共
返回 CakePHP 的布局文件应用的传统模式是否已启用。禁用意味着布局不会自动应用于呈现的视图。
-
loadHelper() 公共
加载助手。委托给
HelperRegistry::load()
加载助手。 -
loadHelpers() 公共
仅当序列化已禁用时加载助手。
-
log() 公共
将消息写入日志的便捷方法。有关写入日志的更多信息,请参阅 Log::write()。
-
pluginSplit() 公共
将点语法插件名称拆分为其插件和文件名。如果 $name 没有点,则索引 0 将为 null。它检查插件是否已加载,否则文件名将保持不变,因为文件名包含点。
-
prepend() 公共
附加到现有或新的块。
-
render() 公共
呈现 JSON 视图。
-
renderLayout() 公共
呈现布局。返回 _render() 的输出。
-
reset() 公共
重置块的内容。这将覆盖任何现有内容。
-
serializeKeys() 受保护
-
set() 公共
保存变量或关联变量数组以供模板内使用。
-
setConfig() 公共
设置配置。
-
setContentType() 受保护
根据视图的 contentType() 设置响应的 content-type。
-
setElementCache() 公共
设置 View 用于存储缓存元素的缓存配置。
-
setEventManager() 公共
返回此对象的 Cake\Event\EventManagerInterface 实例。
-
setLayout() 公共
设置布局文件名称,以在其中呈现模板。指定的名称是
templates/layout/
中布局的文件名,不带 .php 扩展名。 -
setLayoutPath() 公共
设置布局文件的路径。
-
setPlugin() 公共
设置插件名称。
-
setRequest() 公共
设置请求对象,并根据请求内容配置许多控制器属性。设置的属性是
-
setResponse() 公共
设置响应实例。
-
setSubDir() 公共
设置此模板文件的子目录。
-
setTemplate() 公共
设置要呈现的模板文件名称。指定的名称是
templates/<SubFolder>/
中的文件名,不带 .php 扩展名。 -
setTemplatePath() 公共
设置模板文件路径。
-
setTheme() public
设置要使用的视图主题。
-
start() public
开始为“块”捕获输出。
方法详细说明
__construct() ¶ public
__construct(Cake\Http\ServerRequest|null $request = null, Cake\Http\Response|null $response = null, Cake\Event\EventManagerInterface|null $eventManager = null, array<string, mixed> $viewOptions = [])
构造函数
参数
-
Cake\Http\ServerRequest|null
$request 可选 请求实例。
-
Cake\Http\Response|null
$response 可选 响应实例。
-
Cake\Event\EventManagerInterface|null
$eventManager 可选 事件管理器实例。
-
array<string, mixed>
$viewOptions 可选 视图选项。有关设置为类属性的选项列表,请参阅 {@link View::$_passedVars}。
__get() ¶ public
__get(string $name): Cake\View\Helper|null
助手对象的魔术访问器。
参数
-
string
$name 要获取的属性名称。
返回值
Cake\View\Helper|null
_checkFilePath() ¶ protected
_checkFilePath(string $file, string $path): string
检查视图文件路径是否超出定义的模板路径。
只有包含 ..
的路径才会被检查,因为它们最有可能解析到模板路径之外的文件。
参数
-
string
$file 模板文件的路径。
-
string
$path $file 应该位于其中的基本路径。
返回值
字符串
抛出
InvalidArgumentException
_configDelete() ¶ protected
_configDelete(string $key): void
删除单个配置键。
参数
-
string
$key 要删除的键。
返回值
void
抛出
Cake\Core\Exception\CakeException
如果尝试覆盖现有的配置
_configRead() ¶ protected
_configRead(string|null $key): mixed
读取配置键。
参数
-
string|null
$key 要读取的键。
返回值
mixed
_configWrite() ¶ protected
_configWrite(array<string, mixed>|string $key, mixed $value, string|bool $merge = false): void
写入配置键。
参数
-
array<string, mixed>|string
$key 要写入的键。
-
mixed
$value 要写入的值。
-
string|bool
$merge 可选 True 表示递归合并,'shallow' 表示简单合并,false 表示覆盖,默认值为 false。
返回值
void
抛出
Cake\Core\Exception\CakeException
如果尝试覆盖现有的配置
_createCell() ¶ protected
_createCell(string $className, string $action, string|null $plugin, array<string, mixed> $options): Cake\View\Cell
创建并配置单元实例。
参数
-
string
$className 单元格类名。
-
string
$action 操作名称。
-
string|null
$plugin 插件名称。
-
array<string, mixed>
$options 单元格的构造函数选项。
返回值
Cake\View\Cell
_dataToSerialize() ¶ protected
_dataToSerialize(array|string $serialize): mixed
返回要序列化的数据。
参数
-
array|string
$serialize 需要序列化到的视图变量的名称。
返回值
mixed
_elementCache() ¶ protected
_elementCache(string $name, array $data, array<string, mixed> $options): array<string, mixed>
为元素生成缓存配置选项。
参数
-
string
$name 元素名称
-
array
$data 数据
-
array<string, mixed>
$options 元素选项
返回值
array<string, mixed>
_evaluate() ¶ protected
_evaluate(string $templateFile, array $dataForView): string
沙盒方法,用于评估模板/视图脚本。
参数
-
string
$templateFile 模板的文件名。
-
array
$dataForView 要包含在渲染视图中的数据。
返回值
字符串
_getElementFileName() ¶ protected
_getElementFileName(string $name, bool $pluginCheck = true): string|false
查找元素文件名,如果失败则返回false。
参数
-
string
$name 要查找的元素名称。
-
bool
$pluginCheck 可选 - 如果为 false,则将忽略请求的插件(如果解析的插件未加载)
返回值
string|false
_getLayoutFileName() ¶ protected
_getLayoutFileName(string|null $name = null): string
返回此模板的布局文件名,以字符串形式表示。
参数
-
string|null
$name 可选 要查找的布局名称。
返回值
字符串
抛出
Cake\View\Exception\MissingLayoutException
当找不到布局时
Cake\Core\Exception\CakeException
_getSubPaths() ¶ protected
_getSubPaths(string $basePath): list<string>
查找所有子模板路径,基于 $basePath。如果当前请求中定义了前缀,则此方法会将带前缀的模板路径添加到 $basePath 的前面,在嵌套的情况下级联。这基本上用于查找元素和布局的带前缀的模板路径。
参数
-
string
$basePath 要获取带前缀的基本路径。
返回值
list<string>
_getTemplateFileName() ¶ protected
_getTemplateFileName(string|null $name = null): string
返回给定操作的模板文件名,以字符串形式表示。默认情况下,驼峰式操作名称将被转换为下划线分隔的名称。这意味着您可以使用 LongActionNames,它对应于 long_action_names.php 模板。您可以通过覆盖 _inflectTemplateFileName 来更改词形变化规则。
参数
-
string|null
$name 可选 要查找模板文件名的控制器操作
返回值
字符串
抛出
Cake\View\Exception\MissingTemplateException
当找不到模板文件时。
Cake\Core\Exception\CakeException
当未提供模板名称时。
_inflectTemplateFileName() ¶ protected
_inflectTemplateFileName(string $name): string
将视图模板文件名称更改为下划线分隔的格式。
参数
-
string
$name 应该进行词形变化的文件名称。
返回值
字符串
_paths() ¶ protected
_paths(string|null $plugin = null, bool $cached = true): list<string>
按顺序返回查找视图文件的所有可能路径。
参数
-
string|null
$plugin 可选 可选的插件名称,用于扫描视图文件。
-
bool
$cached 可选 设置为 false 以强制刷新视图路径。默认值为 true。
返回值
list<string>
_render() ¶ protected
_render(string $templateFile, array $data = []): string
呈现并返回给定模板文件及其数据数组的输出。处理父/扩展模板。
参数
-
string
$templateFile 模板的文件名
-
array
$data 可选 要包含在渲染视图中的数据。如果为空,将使用当前 View::$viewVars。
返回值
字符串
抛出
LogicException
当块保持打开状态时。
_renderElement() ¶ protected
_renderElement(string $file, array $data, array<string, mixed> $options): string
呈现元素,并触发其 before 和 afterRender 回调,如果使用缓存,则写入缓存。
参数
-
string
$file 元素文件路径
-
array
$data 要渲染的数据
-
array<string, mixed>
$options 元素选项
返回值
字符串
_serialize() ¶ protected
_serialize(array|string $serialize): string
序列化视图变量。
参数
-
array|string
$serialize
返回值
字符串
addHelper() ¶ protected
addHelper(string $helper, array<string, mixed> $config = []): void
在 initialize()
方法中添加助手。
参数
-
string
$helper 帮助器。
-
array<string, mixed>
$config 可选 配置。
返回值
void
append() ¶ public
append(string $name, mixed $value = null): $this
附加到现有或新的块。
追加到新块将创建该块。
参数
-
string
$name 块的名称
-
mixed
$value 可选 块的内容。值将被类型转换为字符串。
返回值
$this
另请参阅
assign() ¶ public
assign(string $name, mixed $value): $this
设置块的内容。这将覆盖任何现有内容。
参数
-
string
$name 块的名称
-
mixed
$value 块的内容。值将被类型转换为字符串。
返回值
$this
另请参阅
blocks() ¶ public
blocks(): list<string>
获取所有现有块的名称。
返回值
list<string>
另请参阅
cache() ¶ public
cache(callable $block, array<string, mixed> $options = []): string
创建缓存的视图逻辑块。
这使您可以将一段视图输出缓存到 elementCache
中定义的缓存中。
此方法将首先尝试读取缓存。如果缓存为空,则将运行 $block,并将输出存储起来。
参数
-
callable
$block 要缓存输出的代码块。
-
array<string, mixed>
$options 可选 定义缓存键等的选项。
返回值
字符串
抛出
InvalidArgumentException
当 $options 缺少 'key' 选项时。
cell() ¶ protected
cell(string $cell, array $data = [], array<string, mixed> $options = []): Cake\View\Cell
呈现给定的单元。
示例
// Taxonomy\View\Cell\TagCloudCell::smallList()
$cell = $this->cell('Taxonomy.TagCloud::smallList', ['limit' => 10]);
// App\View\Cell\TagCloudCell::smallList()
$cell = $this->cell('TagCloud::smallList', ['limit' => 10]);
当没有提供操作时,默认情况下将使用 display
操作。
// Taxonomy\View\Cell\TagCloudCell::display()
$cell = $this->cell('Taxonomy.TagCloud');
单元格只有在被回显后才会被渲染。
参数
-
string
$cell 您必须指定单元格名称,并可选地指定单元格操作。例如:
TagCloud::smallList
将调用View\Cell\TagCloudCell::smallList()
,默认情况下将调用display
操作(如果没有提供操作)。-
array
$data 可选 单元方法的附加参数。例如:
cell('TagCloud::smallList', ['a1' => 'v1', 'a2' => 'v2'])
映射到View\Cell\TagCloud::smallList(v1, v2)
-
array<string, mixed>
$options 可选 单元构造函数的选项
返回值
Cake\View\Cell
抛出
Cake\View\Exception\MissingCellException
如果未找到单元类。
configShallow() ¶ public
configShallow(array<string, mixed>|string $key, mixed|null $value = null): $this
将提供的配置与现有配置合并。与 config()
对嵌套键进行递归合并不同,此方法进行简单合并。
设置特定值
$this->configShallow('key', $value);
设置嵌套值
$this->configShallow('some.nested.key', $value);
同时更新多个配置设置
$this->configShallow(['one' => 'value', 'another' => 'value']);
参数
-
array<string, mixed>|string
$key 要设置的键,或完整的配置数组。
-
mixed|null
$value optional 要设置的值。
返回值
$this
disableAutoLayout() ¶ public
disableAutoLayout(): $this
关闭 CakePHP 的布局文件应用的传统模式。布局不会自动应用于呈现的视图。
返回值
$this
dispatchEvent() ¶ public
dispatchEvent(string $name, array $data = [], TSubject|null $subject = null): Cake\Event\EventInterface<TSubject>
创建和分派事件的包装器。
返回一个分派的事件。
参数
-
string
$name 事件的名称。
-
array
$data 可选 任何您希望与该事件一起传输的值,都可以被监听器读取。
-
TSubject|null
$subject optional 此事件适用的对象(默认情况下为 $this)。
返回值
Cake\Event\EventInterface<TSubject>
element() ¶ public
element(string $name, array $data = [], array<string, mixed> $options = []): string
使用提供的参数呈现一段 PHP 并返回 HTML、XML 或任何其他字符串。
这实现了元素(或“部分布局”)的概念,$params 数组用于发送要用于该元素的数据。元素可以被缓存,通过使用 cache
选项来提高性能。
参数
-
string
$name templates/element/
文件夹中模板文件的名称,或MyPlugin.template
用于使用来自 MyPlugin 的模板元素。如果在插件中找不到元素,将搜索正常的视图路径级联。-
array
$data 可选 要使渲染视图(即元素)可用的数据数组。
-
array<string, mixed>
$options 可选 选项数组。可能的键是
返回值
字符串
抛出
Cake\View\Exception\MissingElementException
当元素丢失并且 `ignoreMissing` 为 false 时。
elementExists() ¶ public
elementExists(string $name): bool
检查元素是否存在。
参数
-
string
$name templates/element/
文件夹中模板文件的名称,或MyPlugin.template
用于检查来自 MyPlugin 的模板元素。如果在插件中找不到元素,将搜索正常的视图路径级联。
返回值
bool
enableAutoLayout() ¶ public
enableAutoLayout(bool $enable = true): $this
启用或禁用 CakePHP 的布局文件应用的传统模式。默认情况下启用。设置为关闭意味着布局不会自动应用于呈现的视图。
参数
-
bool
$enable optional 用于打开/关闭的布尔值。
返回值
$this
extend() ¶ public
extend(string $name): $this
提供模板或元素扩展/继承。模板可以扩展父模板并在父模板中填充块。
参数
-
string
$name 要“扩展”当前模板或元素。
返回值
$this
抛出
LogicException
当您使用自身扩展模板或创建扩展循环时。
LogicException
当您扩展不存在的元素时。
fetch() ¶ public
fetch(string $name, string $default = ''): string
获取块的内容。如果块为空或未定义,将返回 ''。
参数
-
string
$name 块的名称
-
string
$default optional 默认文本
返回值
字符串
另请参阅
get() ¶ public
get(string $var, mixed $default = null): mixed
返回给定视图变量的内容。
参数
-
string
$var 您想要其内容的视图变量。
-
mixed
$default optional $var 的默认/回退内容。
返回值
mixed
getConfig() ¶ public
getConfig(string|null $key = null, mixed $default = null): mixed
返回配置。
用法
读取整个配置
$this->getConfig();
读取特定值
$this->getConfig('key');
读取嵌套值
$this->getConfig('some.nested.key');
使用默认值读取
$this->getConfig('some-key', 'default-value');
参数
-
string|null
$key optional 要获取的键,或整个配置的 null。
-
mixed
$default optional 键不存在时的返回值。
返回值
mixed
getConfigOrFail() ¶ public
getConfigOrFail(string $key): mixed
返回此特定键的配置。
此键的配置值必须存在,永远不能为 null。
参数
-
string
$key 要获取的键。
返回值
mixed
抛出
InvalidArgumentException
getElementPaths() ¶ protected
getElementPaths(string|null $plugin): Generator
获取元素路径的迭代器。
参数
-
string|null
$plugin 要获取路径的插件。
返回值
生成器
getEventManager() ¶ public
getEventManager(): Cake\Event\EventManagerInterface
返回此对象的 Cake\Event\EventManager 管理器实例。
您可以使用此实例将任何新的监听器或回调注册到对象事件,或创建您自己的事件并按需触发它们。
返回值
Cake\Event\EventManagerInterface
getLayout() ¶ public
getLayout(): string
获取布局文件名称,以在其中呈现模板。指定的名称是 templates/layout/
中布局的文件名,不带 .php 扩展名。
返回值
字符串
getLayoutPaths() ¶ protected
getLayoutPaths(string|null $plugin): Generator
获取布局路径的迭代器。
参数
-
string|null
$plugin 要获取路径的插件。
返回值
生成器
getTemplate() ¶ public
getTemplate(): string
获取要呈现的模板文件名称。指定的名称是 templates/<SubFolder>/
中的文件名,不带 .php 扩展名。
返回值
字符串
initialize() ¶ public
initialize(): void
初始化钩子方法。
像 $helpers 这样的属性无法在您的自定义视图类中静态初始化,因为它们会被来自控制器中的值在构造函数中覆盖。因此,此方法允许您在视图实例构造后按需操作它们。
可以使用 {@link addHelper()} 方法添加助手。
返回值
void
isAutoLayoutEnabled() ¶ public
isAutoLayoutEnabled(): bool
返回 CakePHP 的布局文件应用的传统模式是否已启用。禁用意味着布局不会自动应用于呈现的视图。
返回值
bool
loadHelper() ¶ public
loadHelper(string $name, array<string, mixed> $config = []): Cake\View\Helper
加载助手。委托给 HelperRegistry::load()
加载助手。
您应该使用 addHelper()
而不是来自 AppView
或其他自定义视图类的 initialize()
钩子的此方法。
参数
-
string
$name 要加载的助手的名称。
-
array<string, mixed>
$config 可选 助手的设置
返回值
Cake\View\Helper
另请参阅
log() ¶ public
log(Stringable|string $message, string|int $level = LogLevel::ERROR, array|string $context = []): bool
将消息写入日志的便捷方法。有关写入日志的更多信息,请参阅 Log::write()。
参数
-
Stringable|string
$message 日志消息。
-
string|int
$level 可选 错误级别。
-
array|string
$context 可选 与该消息相关的其他日志数据。
返回值
bool
pluginSplit() ¶ public
pluginSplit(string $name, bool $fallback = true): array
将点语法插件名称拆分为其插件和文件名。如果 $name 没有点,则索引 0 将为 null。它检查插件是否已加载,否则文件名将保持不变,因为文件名包含点。
参数
-
string
$name 要进行插件拆分的名称。
-
bool
$fallback 可选 如果为 true,则在解析的插件未加载时使用当前请求中设置的插件。
返回值
array
prepend() ¶ public
prepend(string $name, mixed $value): $this
附加到现有或新的块。
在新的区块前添加内容将创建该区块。
参数
-
string
$name 块的名称
-
mixed
$value 块的内容。值将被类型转换为字符串。
返回值
$this
另请参阅
render() ¶ public
render(string|null $template = null, string|false|null $layout = null): string
呈现 JSON 视图。
渲染触发辅助函数回调,这些回调在模板渲染前后以及布局渲染前后被调用,调用方式如下:
beforeRender
afterRender
beforeLayout
afterLayout
如果 View::$autoLayout 设置为 false
,则模板将直接返回。
模板和布局名称可以指向插件模板或布局。使用 Plugin.template
语法,可以选用插件模板/布局/,而不是应用程序模板/布局/。如果找不到选定的插件,则将在常规视图路径级联中查找模板。
参数
-
string|null
$template 可选 正在渲染的模板。
-
string|false|null
$layout 可选 正在渲染的布局。
返回值
字符串
renderLayout() ¶ public
renderLayout(string $content, string|null $layout = null): string
呈现布局。返回 _render() 的输出。
创建了几个变量供布局使用。
参数
-
string
$content 要在一个模板中渲染的内容,包含在周围布局中。
-
string|null
$layout 可选 布局名称
返回值
字符串
抛出
Cake\Core\Exception\CakeException
如果视图中存在错误。
reset() ¶ public
reset(string $name): $this
重置块的内容。这将覆盖任何现有内容。
参数
-
string
$name 块的名称
返回值
$this
另请参阅
set() ¶ public
set(array|string $name, mixed $value = null): $this
保存变量或关联变量数组以供模板内使用。
参数
-
array|string
$name 一个字符串或一个数据数组。
-
mixed
$value 可选 如果 $name 是一个字符串(则作为键使用),则为该字符串的值。如果 $name 是一个关联数组,则不使用,否则作为 $name 的键的值。
返回值
$this
抛出
Cake\Core\Exception\CakeException
如果数组合并操作失败。
setConfig() ¶ public
setConfig(array<string, mixed>|string $key, mixed|null $value = null, bool $merge = true): $this
设置配置。
用法
设置特定值
$this->setConfig('key', $value);
设置嵌套值
$this->setConfig('some.nested.key', $value);
同时更新多个配置设置
$this->setConfig(['one' => 'value', 'another' => 'value']);
参数
-
array<string, mixed>|string
$key 要设置的键,或完整的配置数组。
-
mixed|null
$value optional 要设置的值。
-
bool
$merge 可选 是否递归合并或覆盖现有配置,默认为 true。
返回值
$this
抛出
Cake\Core\Exception\CakeException
当尝试设置一个无效的键时。
setContentType() ¶ protected
setContentType(): void
根据视图的 contentType() 设置响应的 content-type。
返回值
void
setElementCache() ¶ public
setElementCache(string $elementCache): $this
设置 View 用于存储缓存元素的缓存配置。
参数
-
string
$elementCache 缓存配置名称。
返回值
$this
另请参阅
setEventManager() ¶ public
setEventManager(Cake\Event\EventManagerInterface $eventManager): $this
返回此对象的 Cake\Event\EventManagerInterface 实例。
您可以使用此实例将任何新的监听器或回调注册到对象事件,或创建您自己的事件并按需触发它们。
参数
-
Cake\Event\EventManagerInterface
$eventManager 要设置的事件管理器
返回值
$this
setLayout() ¶ public
setLayout(string $name): $this
设置布局文件名称,以在其中呈现模板。指定的名称是 templates/layout/
中布局的文件名,不带 .php 扩展名。
参数
-
string
$name 要设置的布局文件名。
返回值
$this
setLayoutPath() ¶ public
setLayoutPath(string $path): $this
设置布局文件的路径。
参数
-
string
$path 布局文件的路径。
返回值
$this
setPlugin() ¶ public
setPlugin(string|null $name): $this
设置插件名称。
参数
-
string|null
$name 插件名称。
返回值
$this
setRequest() ¶ public
setRequest(Cake\Http\ServerRequest $request): $this
设置请求对象,并根据请求内容配置许多控制器属性。设置的属性是
- $this->request - 到 $request 参数
- $this->plugin - 到 $request->getParam('plugin') 返回的值
参数
-
Cake\Http\ServerRequest
$request 请求实例。
返回值
$this
setResponse() ¶ public
setResponse(Cake\Http\Response $response): $this
设置响应实例。
参数
-
Cake\Http\Response
$response 响应实例。
返回值
$this
setSubDir() ¶ public
setSubDir(string $subDir): $this
设置此模板文件的子目录。
参数
-
string
$subDir 子目录名称。
返回值
$this
另请参阅
setTemplate() ¶ public
setTemplate(string $name): $this
设置要呈现的模板文件名称。指定的名称是 templates/<SubFolder>/
中的文件名,不带 .php 扩展名。
参数
-
string
$name 要设置的模板文件名。
返回值
$this
setTemplatePath() ¶ public
setTemplatePath(string $path): $this
设置模板文件路径。
参数
-
string
$path 模板文件的路径。
返回值
$this
setTheme() ¶ public
setTheme(string|null $theme): $this
设置要使用的视图主题。
参数
-
string|null
$theme 主题名称。
返回值
$this
start() ¶ public
start(string $name): $this
开始为“块”捕获输出。
您可以在区块上多次使用 start,以便以捕获模式追加或添加内容。
// Append content to an existing block.
$this->start('content');
echo $this->fetch('content');
echo 'Some new content';
$this->end();
// Prepend content to an existing block
$this->start('content');
echo 'Some new content';
echo $this->fetch('content');
$this->end();
参数
-
string
$name 要捕获的区块的名称。
返回值
$this
另请参阅
属性详情
$_defaultConfig ¶ protected
默认配置选项。
在控制器中使用 ViewBuilder::setOption()/setOptions() 设置这些选项。
serialize
: 选项用于将一组视图变量转换为序列化响应。其值可以是单个变量名的字符串或多个变量名的数组。如果为真,则会序列化所有视图变量。如果为 null 或 false,则会渲染正常的视图模板。jsonOptions
: `json_encode()` 的选项。例如:JSON_HEX_TAG | JSON_HEX_APOS
。jsonp
: 启用 JSONP 支持,并使用查询字符串中提供的回调函数包装响应。- 将其设置为 true 会启用默认的查询字符串参数“callback”。
- 将其设置为字符串值,会使用提供的查询字符串参数来查找 JSONP 回调名称。
类型
array<string, mixed>
$_eventManager ¶ protected
此对象用于调度内部事件的 Cake\Event\EventManager 的实例。
类型
Cake\Event\EventManagerInterface|null
$request ¶ protected
包含有关当前请求的信息的 \Cake\Http\ServerRequest 对象的实例。此对象包含有关请求的所有信息,以及用于读取有关请求的更多信息的几种方法。
类型
Cake\Http\ServerRequest