Files
huangjingfen/pro_v3.5.1/crmeb/basic/BaseModel.php
panchengyong c1e74d8e68 chore(php): 统一 ScottPan 文件头与注释域名替换
- 按 docs/renew-code-comment.md 将 PHP 文件头改为带边框的 Author 注释\n- 注释中的 crmeb.com 替换为 uj345.cn(代码字符串中的外链未改)\n- 新增 docs/renew-code-comment.md 说明

Made-with: Cursor
2026-03-29 11:22:58 +08:00

49 lines
1.4 KiB
PHP

<?php
// +----------------------------------------------------------------------
// | Author: ScottPan Team
// +----------------------------------------------------------------------
namespace crmeb\basic;
use crmeb\traits\ModelTrait;
use think\db\Query;
use think\Model;
use crmeb\topthink\HasManyThrough;
/**
* Class BaseModel
* @package crmeb\basic
* @mixin ModelTrait
* @mixin Query
*/
class BaseModel extends Model
{
/**
* 重写一对多关联
* @param string $model
* @param string $through
* @param string $foreignKey
* @param string $throughKey
* @param string $localKey
* @param string $throughPk
* @return HasManyThrough
* @author 等风来
* @email 136327134@qq.com
* @date 2023/10/11
*/
public function hasManyThrough(string $model, string $through, string $foreignKey = '', string $throughKey = '', string $localKey = '', string $throughPk = ''): HasManyThrough
{
// 记录当前关联信息
$model = $this->parseModel($model);
$through = $this->parseModel($through);
$localKey = $localKey ?: $this->getPk();
$foreignKey = $foreignKey ?: $this->getForeignKey($this->name);
$throughKey = $throughKey ?: $this->getForeignKey((new $through())->getName());
$throughPk = $throughPk ?: (new $through())->getPk();
return new HasManyThrough($this, $model, $through, $foreignKey, $throughKey, $localKey, $throughPk);
}
}