如何使用 Yii2 kartik gridview 可编辑列与多个模型关系

2024-01-04

问题:

我有 2 个模型,用户模型和用户配置文件模型,两者都与主键和外键 user_id 相关, 用户表有字段 id、用户名、密码、电子邮件等 user_profile表包含id、user_id、公司、电话等

我在用户视图中创建了gridview。我正在使用 kartik EditableColumn,我想从用户 gridview 编辑用户配置文件表字段公司。

到目前为止我做了什么。 请检查代码我做了什么。

请注意:这是我在这里展示的代码的一部分,我认为这足以理解。如果您想查看更多内容,我将编辑问题。

use yii\helpers\Url;
$gridColumns = [
     [
    'class' => 'kartik\grid\EditableColumn',
    'attribute' => 'company',
    'pageSummary' => true,
    'readonly' => false,
    'value' => 'userProfiles.company',
    'content' => function($data,$model){return '<div class="text_content">'.htmlentities($data->userProfiles->company).'</div>';},
    'editableOptions' => [
            'header' => 'Company',
            'inputType' => kartik\editable\Editable::INPUT_TEXT,
            'options' => [
                'pluginOptions' => [

                ]
            ]
        ],
    ],  

    ];

//注意:使用了所有命名空间

 Pjax::begin(); 
 GridView::widget([

    'dataProvider' => $dataProvider,
    'filterModel' => $searchModel,
    'class' => 'kartik\grid\EditableColumn',
    'responsive'=>true,
    'hover'=>true,
    'pjax'=>true,
    'tableOptions'=>['class'=>'table table-bordered table-striped dataTable table-hover'],
    'summaryOptions' => ['class' =>'dataTables_info'],
    'layout'=>"{items}\n<div class='row' style='margin:0.1%'>
                         <div class='col-sm-5'>
                            {summary}
                         </div>
                         <div class='col-sm-7'>
                            <div class='dataTables_paginate paging_simple_numbers'>{pager}</div>
                         </div>
                         </div>",
    'columns' => $gridColumns,
]); Pjax::end(); 

问题是

When I click on company value it shows me blank. please check image.enter image description here


在用户模型中,是否存在您提到的模型关系?不,定义它们之间的关系如下。

public function getUserProfiles()
{
    return $this->hasOne(UserProfile::className(), ['user_id' => 'id']);
} 

现在在同一模型中创建一个赋值方法,如下所示

public function getProfileCompany(){
    return $this->company = $this->userProfiles->company;
} 

现在在 Gridview 中使用 getProfileCompany 方法并分配值,如下所示

   use yii\helpers\Url;
   $gridColumns = [
   [
   'class' => 'kartik\grid\EditableColumn',
   'attribute' => 'company',
   'pageSummary' => true,
   'readonly' => false,
   'value' => function($model){ return $model->profileCompany; }, // assign value from getProfileCompany method
   'editableOptions' => [
        'header' => 'Company',
        'inputType' => kartik\editable\Editable::INPUT_TEXT,
        'options' => [
            'pluginOptions' => [

            ]
        ]
    ],
],  

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

如何使用 Yii2 kartik gridview 可编辑列与多个模型关系 的相关文章

  • 在 Zend Framework 中设置视图缩进

    在 Zend Framework 中 可以为 headMeta headLink 等设置缩进 我喜欢这个 我喜欢东西整齐 所以 现在我想在布局 phtml文件 导致视图脚本中的每个新行都用 X 制表符缩进 这是行不通的 有没有办法在 Zen
  • 无法加载动态库“php_wincache.dll”?

    因为我已经使用 ASP NET 所以我决定在 IIS 上使用 PHP 我使用 Wep PI 安装它 但是当我尝试安装 Composer 时 他失败并出现 PHP 设置错误 我尝试将 php ini 中的 extension dir 更改为绝
  • 如何在 .css 文件中使用 php 变量

    我有一个名为test css我想用它 var var is at test php test css附于test php 我的结构是这样的 test php 这是 test css test css
  • 使用php从图像中获取第一个像素

    我正在尝试获取图像的第一个像素 最好是最左上角或最右上角的一个像素 我看到了这个问题 它有最接近我的问题的答案 获取图像颜色 https stackoverflow com questions 1746530 get image color
  • 在 CodeIgniter、SQL 中调用布尔值的成员函数 result()

    我试图根据搜索关键字查看 data results 中有哪些数据 但每次都会出现上述致命错误 有人可以帮助我吗 我的控制器 public function execute search search term this gt input g
  • 如何在 PHP 中按字母顺序比较 2 个字符串?

    标题说什么 具体来说 如果我有 array1 name zoo array2 name fox 我怎样才能确定按字母顺序排列 array2的名字应该出现在上面 array1 s Use strcmp http www php net str
  • WordPress 中的随机永久链接键

    我想为 WordPress 中的每个新帖子都有一个自定义永久链接 例如 http mysite com x5Kvy6 http mysite com x5Kvy6 如 bit ly 我尝试了这个小脚本 但它只在永久链接的帖子标题中添加了 5
  • php imagecopyresampled 添加黑色背景

    我有一个调整图像大小的脚本 它采用 130x81 图像并将其添加到 130x130 图像中 当 imagecopyresampled 函数运行时 它会在剩余的空间中添加黑色背景 即使基本图像是白色的 下面的代码 我真的很感激一些帮助 The
  • Monolog - 仅记录特定级别的错误

    我在普通 PHP 应用程序中使用 Monolog 我只想记录特定级别的错误 INFO 和不高于 因为我还有其他处理程序 这是我的代码
  • 如何在 Windows 上以纯 PHP 形式提取 .tar 文件?

    我有一个 PHP 脚本 我想在 Windows 上运行 我需要提取 tar 文件 如何提取 tar 文件 我知道 PharData 类 它可以在 Linux 上运行 但不能在 Windows 上运行 我的脚本就死了 没有错误输出或任何东西
  • 如何使用ajax post请求将模态值插入数据库?

    查看代码 div class price div
  • 致命错误:在非对象上调用成员函数 FetchRow()

    这是我的错误消息致命错误 Call to a member function FetchRow on a non object in C AppServ www hfix include care api classes class min
  • date() 和 strtotime 的问题

    这是我所拥有的 str 12 25 2009 echo date Y m d strtotime str 这会产生 1969 12 31 而不是 2009 12 25 如果我将 str var 设置为 01 01 2009 我将得到正确的
  • 我可以制作一个 PHP“宏”(如#define)来为函数调用提供参数吗?

    我所说的参数是 FILE and LINE 函数调用者的那些 以便函数可以在错误报告中使用它们 假设我有两个文件和 file 1 php 调用的第 100 行my func 在 file 2 php 中 我想拨打这个电话my func FI
  • 将我的 JSON 字符串格式化为 PHP 中的
      有序列表

    我正在为一个宠物项目开发一个简单的 CMS 我目前有一个 JSON 字符串 其中包含菜单结构的页面 ID 和父页面 ID 的列表 我现在想将此字符串转换为嵌套或分层列表 有序列表 我尝试过循环查找 但似乎最终得到了过于复杂的子类范围 我正在
  • 将数组值翻转为数组键的函数? [复制]

    这个问题在这里已经有答案了 有没有一个php函数可以接受下面的数组 array size 4 1 gt string 0 6 gt string 1 7 gt string 1 8 gt string 7 将其翻转到下面的数组 请注意 数组
  • 从套接字读取数据,发送响应并关闭

    我正在开发一个 c 和 php 项目 其中 PHP 脚本打开一个到 c 程序的套接字 c 程序将读取数据 然后发回响应 在 PHP 脚本中我有以下内容 echo Opening Client fp fsockopen 127 0 0 1 1
  • 在 Woocommerce 结帐页面上移动亚马逊按钮

    我需要移动 Woocommerce 结账页面上的 Amazon Pay 消息 按钮 我们正在使用Woocommerce 的亚马逊支付 https woocommerce com products pay with amazon 当我查看插件
  • 停止警告:date() [function.date]:来自本地主机

    警告 date function date 依赖系统的时区设置是不安全的 你是required使用 date timezone 设置或 date default timezone set 函数 如果您使用任何这些方法并且仍然收到此警告 则很
  • SQLite适合并发读吗?

    在没有锁定的情况下 SQLite 数据库的性能是否能达到每秒 50 次读取左右 我正在尝试确定它是否可以在不会经常 写入 的 PHP 网站上使用 它主要是从一小部分表中读取相同的数据 没问题 并发读 写实际上会被 SQLite 序列化 所以

随机推荐