如何在 Zend Framework 2 中将数据库适配器设置为 Validator RecordExists

2023-12-04

我正在尝试将验证器 RecordExists 添加到我的表单中,但收到错误“不存在数据库适配器”。如何将数据库适配器设置为此验证器?我使用骨架应用程序中的示例,我正在尝试执行类似的操作(是的,我知道 $dbAdapter 未定义:)我正在搜索如何将此变量更改为数据库适配器资源的解决方案):

namespace Album\Model;

use Zend\InputFilter\Factory as InputFactory;     // <-- Add this import
use Zend\InputFilter\InputFilter;                 // <-- Add this import
use Zend\InputFilter\InputFilterAwareInterface;   // <-- Add this import
use Zend\InputFilter\InputFilterInterface;        // <-- Add this import

class Album implements InputFilterAwareInterface
{
    public $id;
    public $artist;
    public $title;
    protected $inputFilter;                       // <-- Add this variable

public function exchangeArray($data)
{
    $this->id     = (isset($data['id']))     ? $data['id']     : null;
    $this->artist = (isset($data['artist'])) ? $data['artist'] : null;
    $this->title  = (isset($data['title']))  ? $data['title']  : null;
}

// Add content to this method:
public function setInputFilter(InputFilterInterface $inputFilter)
{
    throw new \Exception("Not used");
}

public function getInputFilter()
{
    if (!$this->inputFilter) {
        $inputFilter = new InputFilter();
        $factory     = new InputFactory();

        $inputFilter->add($factory->createInput(array(
            'name'     => 'id',
            'required' => true,
            'filters'  => array(
                array('name' => 'Int'),
            ),
            'validators' => array(
                array(
                    'name'    => 'Db\RecordExists',
                    'options' => array(
                        'table' => 'album',
                        'field' => 'title',
                        'adapter' => $dbAdapter
                    ),
                ),
            ),
        )));

        $this->inputFilter = $inputFilter;
    }

    return $this->inputFilter;
}

}


您可以创建“专辑/模型/专辑”工厂并将 dbAdapter 注入专辑模型。

'service_manager' => array(
    'factories' => array(
        'Application/Model/Album' => function($sm){
            $dbAdapter = $sm->get('Zend\Db\Adapter\Adapter');
            $album = new \Application\Model\Album();
            $album->setDbAdapter($dbAdapter);
            return $album;
        },
    ),
),

现在我们必须实现 setDbAdapter 和 getDbAdapter 方法:

namespace Application\Model;

class Album
{
    public $id;
    public $artist;
    public $title;

    private $_dbAdapter;

    public function exchangeArray($data)
    {
        $this->id     = (isset($data['id'])) ? $data['id'] : null;
        $this->artist = (isset($data['artist'])) ? $data['artist'] : null;
        $this->title  = (isset($data['title'])) ? $data['title'] : null;
    }

    public function setDbAdapter($dbAdapter) {
        $this->_dbAdapter = $dbAdapter;
    }

    public function getDbAdapter() {
        return $this->_dbAdapter;
   }
}

您可以通过调用在输入过滤器中获取 dbAdapter$this->getDbAdapter();

请记住通过 ServiceLocator 在控制器中获取相册模型,否则 dbAdapter 将在您的模型中不可用。

$album = $this->getServiceLocator()->get('Application/Model/Album');
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 Zend Framework 2 中将数据库适配器设置为 Validator RecordExists 的相关文章

  • 如何从模型中获取 Zend\Db\Adapter 实例? (ZF2)

    我正在创建用于管理数据库实体的抽象模型 我已经有了EntityAbstract EntitySetAbstract and a ManagerAbstract楷模 在我的 ManagerAbstract 模型中 我需要一个Zend Db A
  • ZF2 如何获取最后插入的id值?

    我一直坚持使用 Zend Framework 2 获取最后一个插入 id 我放弃了这个 有尝试过的组合 var dump this gt tableGateway gt insert insert var dump this gt tabl
  • 为什么 DoctrineMongoORMModule 从 github 的递归子模块更新失败?

    这是我做错了什么 还是一个更广泛的错误 如果我在空目录中执行以下 git 命令 git init git submodule add https github com doctrine DoctrineMongoODMModule vend
  • Zend 2 数据库事务?

    我们如何在 Zend 2 中使用事务 我在 API 中没有找到任何内容 Zend 1 的几个问题涉及常规 PDO 函数 但我在 Zend 2 中没有看到类似的内容 ZF2 这个部门的文档有点缺乏 开始交易 this gt adapter g
  • 如何将 Apigility 与现有 ZF2 应用程序结合使用?

    我有一个带有一些模块的 ZF2 应用程序 我希望允许在我的应用程序中使用具有 Apigility 的现有模块 我尝试使用 Composer 安装这些模块 require php gt 5 3 3 phpoffice phpexcel mon
  • 如何使用主义2和zend框架2中的缓存?

    请我在这里需要一些帮助 我已经搜索了很多但没有结果 我如何利用查询及其存储在memcache中的结果 我正在使用zend框架2和学说2 这是我在 module config php 中的配置 Doctrine config doctrine
  • 在 zf2 mvc 之外使用 Zend_Db zf2 模块

    我正在编写一个不基于 zf2 mvc 的 PHP 应用程序 我确实只想使用 Zend Db zf2 模块 我如何配置我的应用程序以了解 如何在需要的地方找到 Zend Db 相关的 PHP 文件 我使用 phyrus 下载了 zf2 Zen
  • 授予 bjyauthorize 从 CLI 运行 ZF2 mvc 应用程序的权限

    我在 ZF2 上有一个完全运行的 mvc 应用程序 我想从命令行运行一些操作 我已经正确设置了控制台路由和其他环境 当我从 CLI 运行我的应用程序时 出现权限被拒绝的异常 如下所示 You are not authorized to ac
  • 从 Zend Framework 2 中的路由获取 $_GET 参数

    Zend Framework 1 有一种非常简单的方法来解析 URL 路由并在 GET 超全局中设置找到的参数以便于访问 当然 您可以在控制器内使用 gt getParam something 但如果在 URL 中找到参数 则它是also可
  • 如何启动一个新的大型 ZF2 项目?

    我将使用 ZF2 创建一个新项目 事实上 我必须升级 ZF1 项目 但我决定从头开始 我的项目非常庞大 已经被来自世界各地的志愿者翻译成 10 种不同的语言 我遇到的困难是分析 ZF2 告诉我要遵循的模块结构 该软件允许 ISP 领域的中小
  • Zend Framework 2 一个布局中有两个模板?

    在我的应用程序的每个模块中 我将有一个主要内容部分和一个侧边栏菜单 在我的布局中 我有以下内容 div class span8 listings div div class span4 div 我的控制器都返回一个指定内容的 ViewMod
  • 如何使用doctrine-orm-module和zf2从数据库模式生成实体

    我在用 学说 学说 orm 模块 0 7 0 https packagist org packages doctrine doctrine orm module与ZF2 创建实体后 我通常运行以下命令来根据我的实体自动同步和生成数据库 ve
  • 使用 Zend Framework 2 生成 PDF 文件 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 我现在开始学习 ZF2 并注意到 zend Framework 2 上没有 Zend Pdf 或类似内容 如何在此版本的框架上创建 pdf
  • 未找到“MongoId”类(带有 MongoDB Doctrine 的 Zend 框架)

    我目前正在尝试将 MongoDB 与 ZendFramework 中的 Doctrine 集成 我做了很多教程 在 StackOverflow 或其他地方 但没有任何效果 我一步步按照教程进行操作 http www bigwisu com
  • ACL授权失败后ZF3重定向

    我有一个带有 ACL 的新 ZF3 应用程序 现在 我需要在未经授权的访问的情况下重定向到错误页面 例如 403 我认为最好的方法是触发一个事件 然后捕获它 但我失败了 全部都在我的用户模块中Module php 摘录 namespace
  • 如何在 zend Framework 2 中禁用渲染视图?

    我想使用一些 ajax 但我不知道如何使用与 zend Framework 2 中的 setNoRender 相同的函数来禁用渲染视图 如何在 zend Framework 2 中禁用渲染视图 要禁用您的视图 public function
  • 表单未将帖子值绑定到实体

    我有一个学说实体 一个表单和 2 个字段集 当我用值填充实体时 值会按预期合并到表单中 当我尝试从表单数据创建实体时 它保持为空 我一定是忘记了什么 但就是找不到它 我还有其他几种没有字段集的表单 它们按预期工作 有任何想法吗 下面发布了我
  • Zend Framework 2 将变量传递给模型

    我目前正在开发一个多语言网站 对于多语言部分 我使用翻译器 poedit 我将所选语言存储在会话中 效果很好 模块 php public function onBootstrap MvcEvent e session new Contain
  • Zend Framework 2 重定向

    如何重定向到另一个模块 return this gt redirect gt toRoute null array module gt othermodule controller gt somecontroller action gt s
  • zend框架验证模型中的数据而不是表单中的数据

    使用 Zend Framework 2 在我的应用程序中 要编辑数据库中的数据 可以编译 html 表单或发送 http post 请求 我的服务器作为 Web 服务实现 在第二种情况下 不会呈现表单 问题 如果当服务器收到不是从表单发送而

随机推荐

  • Html.Partial 与 Html.RenderPartial 和 Html.Action 与 Html.RenderAction

    在 ASP NET MVC 中 有什么区别 Html Partial and Html RenderPartial Html Action and Html RenderAction Html Partial返回一个字符串 Html Ren
  • 当前上下文中不存在名称“ViewBag”

    我正在尝试在我的应用程序中使用 ViewBag 我拥有所有最近的 dll 最新版本的 MVC 3 但我仍然收到错误 名称 ViewBag 在当前上下文中不存在 我什至卸载并重新安装了 MVC 3 但没有任何变化 另外 我不相信 dll 会出
  • 通过 Gmail 发送电子邮件

    我有一个代码 用于发送电子邮件 Intent i new Intent Intent ACTION SEND i setType text plain i putExtra Intent EXTRA EMAIL new String to
  • 计算中使用的提示或宏变量

    我使用 EG 中的提示管理器创建了一个数字变量 该变量称为 HYr 代表我提取的数据最高年份 运行程序时 我根据最高年份创建了 4 个新变量 这就是我遇到问题的地方 我有以下内容 Let Yr2 HYr 1 Let Yr3 HYr 2 Le
  • Vapor 4:如何将急切加载的父关系映射为不同的格式?

    我在如何返回包含父关系的模型 同时将急切加载的模型映射到不同的形式方面遇到了一些困难 让我们考虑以下 2 个模型 Course and User final class Course Model Content static let sch
  • docker-compose 主机和容器上的持久数据

    我在 docker compose yml 3 0 中遇到卷问题 所以我知道一个卷的行为就像一个挂载 但是我已经设置了一个wiki 当我在docker compose中设置一个卷时 容器上的数据将被删除 隐藏 那么我怎样才能先将数据从容器保
  • 递归搜索并删除数组?

    我正在使用一个多维数组 我希望能够删除与 id 匹配的数组 和所有子数组 我尝试过的功能是 function removeKey key array childKey children if isset array key unset ar
  • 浮动/浮动=奇怪的结果

    我有两个值 一个来自用户输入 另一个来自数据库 var userinput form someInput var valuefromDB GetValue someNumber public float GetValue int id re
  • XSLT 2.0 通过多阶段转换在 HTML 输出中创建增量脚注编号

    这个问题建立在我对我的回答的基础上原问题 有人建议我发布后续内容 这涉及到尝试集成上一篇文章中的 XSL 代码 在上一个问题中 我提出了 TEI XML 文档的简化版本 我正在使用 XSLT 2 0 将其转换为 HTML 完整的 tei 文
  • 如何计算体素大小?

    提供了 DICOM 标头中的以下信息 如何计算体素大小的第三个值 我假设前两个值为 0 515625 和 0 515625 BitsAllocated 16 BitsStored 12 Columns 512 HighBit 11 Imag
  • 为什么 scanf 在提供 double 时返回 0.000000?

    我有以下汇编代码 为 Linux 上的 NASM 编写 This code has been generated by the 7Basic compiler
  • Python - 将日期时间参数传递到 SQL 命令中

    我正在尝试用Python做这样的事情 SQLCommand Delete From s where Date gt s and Date lt s calendar table name required starting date req
  • 使用 ruby​​ 和 active_record 保存时出现弃用警告

    我是 ruby 新手 正在编写一个需要将消息写入数据库日志的小脚本 我使用 ruby 1 9 3 和 active record 但没有 Rails 所有选择语句都工作正常 但我的写入日志函数返回以下错误 DEPRECATION WARNI
  • Python - 时间数据与格式不匹配

    我有以下格式的字符串时间 2016 12 10T13 54 15 294 我使用以下方法来格式化时间 time strptime ts b d H M S Y 这会引发错误 time data did not match format da
  • 使用 shell 变量查找具有多个文件名的 -name

    我有一个find命令查找名称与提到的多个模式匹配的文件 name范围 find L name SystemOut log o name out o name log o name javacore 这可以在命令行成功找到所需的文件 我正在寻
  • 如何管理 DOM 元素

    我已经实现了无限滚动 即当滚动条到达 div 底部时加载记录 它工作正常 但在页面上加载太多记录后 页面变得太重并导致渲染缓慢 实际上 我正在使用这种技术来替代 gridview 那么在这种情况下我如何管理繁重的 DOM 将 DOM 元素减
  • 使用带有 execve 的新路径来运行 ls 命令

    我正在尝试使用 execve 运行 ls 命令 目前我正在使用以下参数运行它 execve args 0 args env args args looks like ls l a NULL env args looks like PATH
  • 检查文件是否已保存到磁盘?

    我正在从服务器下载文件 将它们保存到设备 然后在我的应用程序中向用户显示它们 我想执行检查以查看该文件是否已存在于设备上 以便我们可以跳过下载并仅显示 但我无法找出执行此操作的最佳方法 我为每个文件创建一个唯一的文件名 然后将其转换为 NS
  • 如何使用 DataTable.Select() 解决文件管理器值中的单引号问题

    假设我想要productCode下面的变量被分配名为产品的产品代码Cookie s 注意其中的 ProductName因为它是导致下面的语句失败的原因 基本上 过滤表达式中的 会导致错误的 SQL 语法 我将不胜感激你们的任何想法 Data
  • 如何在 Zend Framework 2 中将数据库适配器设置为 Validator RecordExists

    我正在尝试将验证器 RecordExists 添加到我的表单中 但收到错误 不存在数据库适配器 如何将数据库适配器设置为此验证器 我使用骨架应用程序中的示例 我正在尝试执行类似的操作 是的 我知道 dbAdapter 未定义 我正在搜索如何