加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 站长学院 > PHP教程 > 正文

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

发布时间:2020-12-13 18:12:27 所属栏目:PHP教程 来源:网络整理
导读:我有两个表工作人员,列id,姓名和出勤率. staff_id用作考勤表中的外键. 我想在出勤gridview中显示员工姓名. 出勤模式: public function getStaff(){ return $this-hasOne(Staff::className(),['id' = 'staff_id']);}public function getStaffName() { return
我有两个表工作人员,列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中,员工是表名.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读