用于审批的联表查询语句
protected function grid()
{
$grid = new Grid(new Shenpi);
//查询待审批工单
// $grid->model()->where('shenpirenid', \Auth::user()->id ) ->where('zt', '待处理')->orderBy('id', 'desc');
// 联表并选择需要的字段
$grid->model()
// 主表为 cb_shenpi
->from('cb_shenpi')
// 关联工单表 cb_faqi
->join('cb_faqi as g', 'cb_shenpi.gongdan_id', '=', 'g.id')
// 审批人ID条件(主表条件)
->where('cb_shenpi.shenpirenid', \Auth::user()->id)
// 工单状态条件(关联表条件)
->where('g.zt', '审批中')
// 按主表ID排序
->orderBy('cb_shenpi.id', 'desc')
// 选择需要的字段(主表和关联表)
->select('cb_shenpi.*', 'g.*', 'cb_shenpi.created_at as shenpi_time','g.title as title','g.sqms as sqms');
通过 from('cb_shenpi') 明确指定主表为流程表
关联条件改为 cb_shenpi.gongdan_id = cb_faqi.id(假设工单表主键为 id)
原 cb_faqi.zt 条件保持不变,但需要通过关联表别名 g 访问
排序改为按主表 cb_shenpi 的 id 字段
选择字段时同时包含主表和关联表的需要字段
如果需要在表格中展示工单表的字段,需要通过关联表别名访问,例如 g.字段名。
如果运行时出现字段冲突(例如两个表都有 id 字段),建议在 select 中为冲突字段指定别名,例如:
->select(
'cb_shenpi.id as shenpi_id',
'g.id as gongdan_id',
'cb_shenpi.*',
'g.*',
'cb_shenpi.spsj as shenpi_time'
)
// 在表格中展示关联表字段
// 在表格中展示关联表字段
$grid->column('id', __('ID'))->sortable();
$grid->column('shenpi_time', '工单发起时间');
$grid->column('title', '工单名称');
$grid->column('sqms', __('工单描述'));
$grid->column('user_id', __('申请人'));
$grid->column('zt', __('状态'));
$grid->column('a', __('配置流程节点'))->display(function(){
return sprintf(
'<a href="liucheng?leixing_id=%d&leixing_name=%s" style="color:blue">审批节点</a>',
$this->id,
urlencode($this->name)
);
});
//导出结束
return $grid;
}
最近访问时间:2025-08-15 17:37:11