php – 如何使用具有多个模型关系的Yii2 kartik gridview可编辑列
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了php – 如何使用具有多个模型关系的Yii2 kartik gridview可编辑列,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2237字,纯文字阅读大概需要4分钟。
内容图文
![php – 如何使用具有多个模型关系的Yii2 kartik gridview可编辑列](/upload/InfoBanner/zyjiaocheng/781/fba661ea48cb4ecda72c3cba82e11a64.jpg)
题:
我有2个模型,用户模型和用户配置文件模型,两者都与主要和用户密钥user_id相关,
用户表有字段ID,用户名,密码,电子邮件等
user_profile表已经提交了id,user_id,company,phone等
我在用户视图中创建了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();
问题是
当我点击公司价值时,它显示空白.请检查image.
解决方法:
在用户模型中,您提到的模型关系是否存在?不,定义它们之间的关系如下.
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' => [
]
]
],
],
];
内容总结
以上是互联网集市为您收集整理的php – 如何使用具有多个模型关系的Yii2 kartik gridview可编辑列全部内容,希望文章能够帮你解决php – 如何使用具有多个模型关系的Yii2 kartik gridview可编辑列所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。