【问题标题】:How to access cakephp model's validate from custom view template如何从自定义视图模板访问 cakephp 模型的验证
【发布时间】:2015-01-27 21:12:06
【问题描述】:

我创建了一个“表单”模板来烘焙自定义主题视图(Cake 2.6.0)。我正在尝试从模型的 $validate 数组中访问字段属性。但是,访问 $model->validate 会显示一个空数组。我的模型有几个字段,其 $validate 属性中定义了规则。

烘焙自定义视图时是否无法访问 $validate 属性?如果不是,我如何确定某个字段是否为必填项,或者它是否使用了 'rule =>' 'url',例如?

【问题讨论】:

  • 我认为没有办法从视图中访问规则,我建议使用一些 ajax 插件进行验证,您可以在其中拥有自定义规则...
  • 实际上不在视图中。它位于 form.ctp 模板中,烘焙外壳用于创建视图。一些模型属性是可用的,但有些,比如模型的 $validate 数组,似乎没有设置。
  • 你能更多地分享/描述你的代码吗???

标签: cakephp cakephp-2.0


【解决方案1】:

cake bake view 使用的视图模板是class TemplateTask 的一个实例,不能直接访问模型、视图或控制器。您要做的是将控制器导入自定义视图模板:

Console\Templates\[themename]\views\[template].ctp

<?php
// The Controller's name
$controllerName = Inflector::pluralize($modelClass).'Controller';

// Import the Controller
App::import('Controller', $controllerName);

// Instantiate the Controller
$Controller = new $controllerName();

// Load the Controller's classes
$Controller->constructClasses();

//...the rest of your template

您现在可以访问您的控制器@$Controller。要访问您的 validate 属性,您可以使用 $Controller-&gt;{$modelClass}-&gt;validate。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-03-22
    • 2012-11-20
    • 2013-09-16
    • 2013-01-01
    • 2011-12-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多