dousenjue3214 2015-08-22 12:19
浏览 57
已采纳

如何在yii 2中使用搜索和过滤获取外键值而不是网格视图中的键?

I have two tables staff with columns id, name and attendance. staff_id is used as foreign key in attendance table.

I want to display staff name in attendance gridview.

Attendance model:

public function getStaff()
{
        return $this->hasOne(Staff::className(), ['id' => 'staff_id']);
}

public function getStaffName() {
          return $this->staff->name;
}

and in index.php I used this code

     <?= GridView::widget([
            [
             'attribute'=>'staff_id',
            'value'=>'StaffName',
            ],
]); ?>

to get value of staff name. In this way I am getting staff name successfully but the problem is that when I make search for staff name in gridview it say "staff_id" should be integer as I define it as integer, but here I want to search name of staff instead of id.

How is this possible ? Thanks in advance

  • 写回答

3条回答 默认 最新

  • dshgdhdfcas30210 2015-08-22 12:43
    关注

    Add this in search model

    $query->joinWith(['staff(relation name)']);

    And add below code at filter query.

    $query->andFilterWhere(['like', 'staff.name', $this->staff_id])

    In staff.name that in staff is table name.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(2条)

报告相同问题?

悬赏问题

  • ¥30 YOLO检测微调结果p为1
  • ¥20 求快手直播间榜单匿名采集ID用户名简单能学会的
  • ¥15 DS18B20内部ADC模数转换器
  • ¥15 做个有关计算的小程序
  • ¥15 MPI读取tif文件无法正常给各进程分配路径
  • ¥15 如何用MATLAB实现以下三个公式(有相互嵌套)
  • ¥30 关于#算法#的问题:运用EViews第九版本进行一系列计量经济学的时间数列数据回归分析预测问题 求各位帮我解答一下
  • ¥15 setInterval 页面闪烁,怎么解决
  • ¥15 如何让企业微信机器人实现消息汇总整合
  • ¥50 关于#ui#的问题:做yolov8的ui界面出现的问题