tp5模型使用关联时,对于全局查询范围的处理_PHP_编程开发_程序员俱乐部

中国优秀的程序员网站程序员频道CXYCLUB技术地图
热搜:
更多>>
 
您所在的位置: 程序员俱乐部 > 编程开发 > PHP > tp5模型使用关联时,对于全局查询范围的处理

tp5模型使用关联时,对于全局查询范围的处理

 2019/10/24 17:36:46  Du_wood  程序员俱乐部  我要评论(0)
  • 摘要:tp5项目中需要限制一个模型的数据范围,模型类里面定义一个静态的base方法protectedstaticfunctionbase($query){$query->where(['member_id'=>request()->member_id]);}在与其他模型做关联时publicfunctioncategory(){return$this->belongsTo('category','category_id','id',[],'LEFT')->
  • 标签:使用 全局

?

?

tp5项目中需要限制一个模型的数据范围,模型类里面定义一个静态的base方法

?

class="php" name="code">protected static function base($query)
{
    $query->where(['member_id' => request()->member_id]);
}

?

在与其他模型做关联时

public function category()
{
    return $this->belongsTo('category', 'category_id', 'id', [], 'LEFT')->setEagerlyType(0);
}

??

?

?

报错:1052 Column 'member_id' in where clause is ambiguous

?

明显两个表有同名字段member_id,查询器没有自动对该字段做别名处理

?

解决办法:base方法修改为:

protected static function base($query)
{
    $name = $query->getTable();
    $name = empty($name) ? 'member_id' : $name . '.member_id';
    $query->where([$name => request()->member_id]);
}

?对别名前缀做一个处理,完美解决.

上一篇: Java 设置PPT形状中的文本自适应 下一篇: 没有下一篇了!
发表评论
用户名: 匿名