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

前端之家收集整理的这篇文章主要介绍了php – 如何在yii 2中使用搜索和过滤获取外键值而不是网格视图中的键?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我有两个表工作人员,列id,姓名和出勤率. staff_id用作考勤表中的外键.

我想在出勤gridview中显示员工姓名.

出勤模式:

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

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

在index.PHP中我使用了这段代码

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

获得员工姓名的价值.通过这种方式我成功获得了员工姓名,但问题是当我在gridview中搜索员工姓名时,它说“staff_id”应该是整数,因为我将其定义为整数,但在这里我想搜索员工的姓名而不是id .

这怎么可能 ?提前致谢

搜索模型中添加此项

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

并在过滤查询添加以下代码.

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

在staff.name中,员工是表名.

猜你在找的PHP相关文章