如何在 yii 中的 CGridview 中显示相关表的数据

2024-04-11

我正在尝试使用 CGridView 显示结果。我有两张桌子Users and products. 出口产品是维护 then 之间的多对多关系的表,并让关系名称为“myrelation”

public function actionSearch() {   
   if(isset($_GET['searchButton'] && $_GET['searchType']==='products') {
       $searchString=  trim(strip_tags($_GET['searchValue']));
       $model=new Products;
       $criteria->compare('productName', $searchString, TRUE, 'AND', TRUE);
       $criteria->compare('productType',$searchString,true,'OR',TRUE);
       $criteria->compare('productBrand',$searchString,true,'OR',TRUE);
       $criteria->compare('description',$searchString,true,'OR',true);

       $dataProviderObj=new CActiveDataProvider($model, array(
           'criteria'=>$criteria,
       ));  


   }

   $this->render('search',array(
       'dataProviderObj'=>$dataProviderObj,
        'model'=>$model,

   ));

}

这是我的view.php

 $this->widget('zii.widgets.grid.CGridView', array(
        'id'=>'users-grid',

        'dataProvider'=>$dataProviderObj,
        'columns'=>array(

            'productName',
            'productType',
            'productBrand',
            'description',
                    'I WANT THE NAME OF EVERY USER THAT CREATED THIS PRODUCT 
 HERE WHICH IS IN THE USERS TABLE '

        ),
 ));

有人可以告诉我如何获得在那里创建这些产品的用户的名称吗? 中的列users表是

UserId,
Username

and 出口产品 are

UserId,
ProductId

更新了我的代码

public function gridCreateUser($data,$row) {
     $myproducts=array();

     $user = $data->userId;
     $records= Users::model()->with('usersproducts')->findAll('userId=:userId',array(':userId'=>$user));
        foreach($records as $record)
        {
            foreach($record->usersproducts as $productis)
            {
                $myproducts[]=$productis->productName;
            }

        }
        return $myproducts;


}

网格视图的视图

$this->widget('zii.widgets.grid.CGridView', array(
    'id'=>'users-grid',

    'dataProvider'=>$dataProviderObj,
    'columns'=>array(

        'productName',
        'productType',
        'productBrand',
        'description',
        array(
            'name' => '<column_name>'
            'value' => array($this,'gridCreateduser')
        )
     ),
));

这是你的网格视图value => array($this,'gridCreatedUser')这意味着网格视图将在其控制器中搜索函数来查找函数网格创建用户()

现在在控制器中

public function gridCreateUser($data,$row){

     $user = $data-><colmn_name>;
     //do your stuff for finding the username or name with $user
     //for eg.
     $detail = User::model()->findByPk($user);
     // make sure what ever model you are calling is accessible from this controller other wise you have to import the model on top of the controller above class of the controller.
     return $detail->username;
}

否,这会将该列名称的所需值发送到网格视图。

或者,您可以通过定义要创建的网格视图的模型内部模型之间的关系来以简单的方式使用

public function relations(){
    return array(
        'users' => array(self::HAS_MANY, 'Users', '<column_name>'),
    );
}

然后您可以直接在网格视图中访问它

$this->widget('zii.widgets.grid.CGridView', array(
   'id'=>'users-grid',

   'dataProvider'=>$dataProviderObj,
   'columns'=>array(
       'productName',
       'productType',
       'productBrand',
       'description',
       array(
          'name' => '<column_name>'
          'value' => $data->users->username
       )
    ),
));
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

如何在 yii 中的 CGridview 中显示相关表的数据 的相关文章

  • Apache 2.4.9 在启用 ssl 模块并设置 ssl 证书后失败

    Apache 在尝试设置 ssl 证书后抛出以下错误 ssl emerg pid 30907 AH02572 Failed to configure at least one certificate and key for localhos
  • 由于未定义符号,PECL solr 未加载:curl_easy_getinfo

    我正在尝试加载 PECL solr 扩展 我尝试使用 pecl install solr 并下载并使用 phpize configure make 来安装它 在这两种情况下 扩展安装时都没有错误 但在 apache 重新启动后 或在命令行上
  • 使用 PHP 创建图表并导出为 PDF

    我正在寻找有关使用 PHP 创建图表的建议 我还希望能够将这些图表导出到 PDF 文档 我目前正在使用谷歌图表 但我不喜欢将我的所有信息发送到谷歌的想法 我更喜欢自己的托管解决方案 我见过很多 Flash 解决方案 但我不知道有什么方法可以
  • 使用 md5 加密的 PHP 和 Mysql 查询出现问题

    我使用普通的 php mysql 插入查询并使用 md5 加密密码 这是插入查询 sql mysql query INSERT INTO user username password role approved values usernam
  • 压缩 zend Framework 2 的 html 输出

    我目前正在 PHP 5 4 4 上使用 Zend Framework 2 beta 开发个人 web 应用程序以用于自学目的 我想知道是否可以在 html 输出发送到浏览器之前拦截它 以便通过删除所有不必要的空格来缩小它 我怎样才能在ZF2
  • Laravel 5.1 中的VerifyCsrfToken.php 第 53 行:(Firefox 浏览器)中出现 TokenMismatchException?

    我试图找出为什么会出现这个错误 即使它是全新安装的 我在我的项目中遇到了这个错误 所以我用谷歌搜索 没有一个答案对我有用 所以我创建了新项目并复制了所有控制器 视图和模型 几个小时后工作正常 再次出现令牌不匹配错误 为什么在 laravel
  • Magento - 将特定父类别的子类别列为链接

    我是 php 的初学者 并且一直试图将一个父类别的子类别作为链接调用 我得到了这个 它调出了 getName 但 getUrl 根本没有返回任何 URL 输出代码只是 li a href name of sub a li
  • 如何在MAMP中设置环境变量?

    如何在 MAMP 版本 3 3 中设置环境变量 我可以在我的 PHP 应用程序中使用它 我已经更新了 Applications MAMP Library bin envvars and envvars std file并添加以下行 Lice
  • 运行 Composer 返回:“无法打开输入文件:composer.phar”

    我是 symfony2 和阅读新手symblog http tutorial symblog co uk tutorial parts 在第三章中 在尝试使用数据装置时 我尝试了以下命令 php composer phar update 但
  • 如何将 PHPMailer 与 Codeigniter 3 集成

    嗨 我正在尝试使用PHPMailer 库 https github com PHPMailer PHPMailer来自我的 Codeigniter 应用程序中的 GitHub 我下载了代码并解压到我的application library文
  • 如何从导出的 csv 文件中删除双引号

    我正在使用 Laravel 5 8 并且添加了 Maatwebsite 包 用于从数据库表导出 CSV 文件 这是我导出的类 class ConfirmedExport implements FromCollection WithHeadi
  • TOMCAT 6 中的 PHP - 异常

    我一直在努力融入PHP in APACHE TOMCAT 6依照指示second answer为了QUESTION https stackoverflow com questions 779246 run a php app using t
  • PHP 中的 NOW() 函数

    是否有 PHP 函数以与 MySQL 函数相同的格式返回日期和时间NOW 我知道如何使用date 但我想问是否有专门用于此的功能 例如 返回 2009 12 01 00 00 00 您可以使用date https www php net m
  • PHP - hash_pbkdf2 函数

    我正在尝试使用此 php 函数执行一个函数来哈希密码 http be php net manual en function hash pbkdf2 php http be php net manual en function hash pb
  • Android GCM 服务器的 API 密钥

    我有点困惑我应该为 GCM 服务器使用哪个 API 密钥 在文档中它说使用 android api 密钥 这对我不起作用并且总是给出未经授权的 http developer android com google gcm gs html ht
  • 使用PHP套接字发送和接收数据

    我正在尝试通过 PHP 套接字发送和接收数据 一切正常 但是当我尝试发送数据时 PHP 不发送任何内容 Wireshark 告诉我发送的数据长度为 0 我正在使用这段代码
  • Azure 上的“phpcomposer.phar install”出现“无法终止进程”错误

    我正在尝试将我的 Symfony 2 应用程序部署到 Microsoft Azure 网站云 为此 我按照本指南中的步骤操作http symfony com doc current cookbook deployment azure web
  • php 表单提交 - Q2

    我对这个虚拟问题感到抱歉 这是我的简单 PHP 表单 其中包含两个 SQL 表和 ADD 提交 按钮 我希望将人员从 Test1 转移到 Test2 很多事情都很好 只有提交按钮不起作用 因此 Test2 表没有反馈 Revised 现在提
  • 为什么 PHP 中不允许“传统”类型提示?

    刚刚发现类型提示 http php net manual en language oop5 typehinting phpPHP 中允许 但不适用于整数 字符串 布尔值或浮点数 为什么 PHP 不允许对整数 字符串等类型进行类型提示 从 P
  • 在 PHP 中模拟 jQuery.ajax 请求

    我必须在 PHP 中模拟 AJAX 请求 就像在 jQuery 中一样 我当前的代码在这里 原始 AJAX 调用 不得修改 ajax type POST url someFile php data data success function

随机推荐

  • 如何在另一个类中访问 IBOutlet?

    我在这个问题中遇到了同样的错误 我如何访问另一个类中的 IBOutlet 迅速 https stackoverflow com questions 35358225 how can i access iboutlet in another
  • 用于访问 VMware vSphere PowerCLI 的 C# 代码 [关闭]

    Closed 此问题正在寻求书籍 工具 软件库等的推荐 不满足堆栈溢出指南 help closed questions 目前不接受答案 是否有 C 代码通过 PowerCLI 或其他方式访问 vSphere API 的示例 对于测试自动化
  • 用于方形图像的 Google 自定义搜索 API

    我正在寻找一种方法来指定 Google 自定义搜索 API 返回的图像具有方形格式 我尝试过 tbs iar s 因为我读过使用自定义搜索 API REST JSON 搜索方形图像 https stackoverflow com quest
  • 如何从行索引 Swift 获取索引路径

    我正在加载一个数组UIcollectionview 稍后会添加其他数据 我想随机选择集合视图项目 var indexpath Int arc4random uniform UInt32 items count 1 self collecti
  • 删除非英文字符 PHP

    我如何解析字符串以删除 php 中的所有非英文字符 现在我想删除类似的东西 谢谢 str preg replace 00 255 u str
  • 是否可以使用 jquery 为每一行文本添加动画?

    jquery 是否可以一次显示一行文本 我知道它可以在闪存中完成我这里有一个例子http iliketoplay dk blog deff http iliketoplay dk blog deff 在播放视频时 鼠标单击一个圆圈 将打开一
  • 使用 EF Core 继承时如何避免重复属性投影?

    我正在努力解决如何在使用时避免重复投影逻辑EF Core 中的继承 https learn microsoft com en us ef core modeling inheritance 这是我的情况 我有三种类型 Lesson 这是一个
  • 可以在单个 PHP 脚本中使用多个独立的 $_SESSION 吗?

    我想在单个 PHP 脚本中使用两个独立的 SESSION 我尝试使用以下代码验证这是否可行 error reporting 1 session name session one session start SESSION array SES
  • 如何使用 Node.js 标记 Markdown?

    我正在构建一个 iOS 应用程序 该应用程序的视图将从 Markdown 中获取其来源 我的想法是能够将 MongoDB 中存储的 markdown 解析为 JSON 对象 如下所示 h1 This is the heading p Her
  • 如何使用Qt中的QSyntaxHighlighter类在QML TextEdit上实现富文本逻辑?

    我的 QML 文件中有一个 TextEdit 并且有一个 QSyntaxHighlighter C 类 我想在 C 类中指定突出显示逻辑并将其应用到 TextEdit 但我不确定如何在 QML 对象和 C 类之间建立连接 您还可以提供一些示
  • Symfony2 表单事件 PreSetData 订阅者

    在我的应用程序中 用户可以为某些实体创建自定义字段 然后在显示表单时为每个实体对象设置此自定义字段的值 实现是这样的 1 我为表单创建了一个接口 并且我想要实现该接口的表单 2 我为所有表单创建了一个表单扩展 app core form b
  • 如何在 python 中使用网址下载文件?通过浏览器下载可以,但不能通过python的请求下载

    如果在浏览器 Firefox Chrome 等 中输入 URL 则会下载该文件 但是当我尝试使用 python 下载相同的文件 使用相同的 URL 时requests or urllib图书馆 我没有得到任何回应 URL https www
  • 用例可以没有参与者吗?

    我正在研究全自动系统的用例图 外部系统只会触发该系统的一个用例 大多数其他用例都是计划任务并由计时器调用 我有一个由计时器调用的用例 它包含并扩展了其他两个用例 当我编写用例描述时 谁将成为 UC 2 和 UC 3 的参与者 用例可以在没有
  • 无法销毁多对多关系中的记录

    我是 Rails 新手 所以我确信我犯了一个简单的错误 我在两个模型之间建立了多对多关系 User and Group 它们通过连接模型连接GroupMember 这是我的模型 删除了不相关的内容 class User lt ActiveR
  • WCF 和多主机标头

    我的雇主网站有多个主机名 它们都访问同一服务器 我们只是出于品牌目的显示不同的皮肤 不幸的是 WCF 在这种情况下似乎不能很好地工作 我试过了使用自定义主机工厂覆盖默认主机 http www robzelt com blog 2007 01
  • 具有可变动作的强化学习

    All the 强化学习 http en wikipedia org wiki Reinforcement learning我读过的算法通常应用于具有固定数量操作的单个代理 是否有任何强化学习算法可以在考虑可变数量的动作的同时做出决策 例如
  • sp_executesql 导致我的查询非常慢

    我在数据库表上运行 sp executesql 时遇到一些问题 在本例中 我使用 ORM NHibernate 生成一个查询一个表的 SQL 查询 该表大约有 700 万条记录 并且索引很高 当我运行 ORM 在没有 sp executes
  • 使用 xml 资源创建 ArrayAdapter 并使用微调器检索“id”或“value”字段

    我正在尝试创建一个微调器 我使用 ArrayAdapter 从资源 xml 填充其值 我还想给资源项一些 id 或 value 我如何在 onItemSelected 回调中检索这些值 这是 Java 代码 package com waus
  • struts2中如何使用$.ajax()方法

    大家好 我正在使用 struts 2 和 jquery 插件 1 8 现在我在谷歌上搜索使用 ajax struts中的方法 但我认为我没有输入正确的关键字 任何人都可以给我一个教程 我们如何使用 struts 使用此函数并将响应作为字符串
  • 如何在 yii 中的 CGridview 中显示相关表的数据

    我正在尝试使用 CGridView 显示结果 我有两张桌子Users and products 出口产品是维护 then 之间的多对多关系的表 并让关系名称为 myrelation public function actionSearch