分销中心的邀请朋友分销海报/个人分销海报 加载不出来。
报错log:4|user|39.*.*.85|4|GET||/api/division/agent/spread/code|[]|{"file":"/www/wwwroot/....../app/services/BaseServices.php","line":418,"message":"Undefined property: app\\services\\agent\\DivisionServices::$dao","code":2}
修复 DivisionServices.php 的构造函数:
打开 /app/services/agent/DivisionServices.php 文件,检查它的构造函数 __construct。
Service 类必须通过构造函数注入对应的 Dao 类。请确保代码结构:
use app\dao\agent\DivisionDao; // 确保引入了对应的 Dao 类
class DivisionServices extends BaseServices
{
/**
* 构造方法 (必须正确注入并赋值 $this->dao)
*/
public function __construct(DivisionDao $dao)
{
$this->dao = $dao; // 这一行绝对不能漏掉!
}
// ... 其他业务方法
}
创建缺失文件
一:创建缺失的 DivisionDao.php 文件
新建文件 /app/dao/agent/DivisionDao.php,并填入以下基础代码:
<?php
namespace app\dao\agent;
use app\dao\BaseDao;
use app\model\agent\Division; // 请确保这里引入的 Model 类名和路径是正确的
/**
* 事业部/代理商 Dao 类
* Class DivisionDao
* @package app\dao\agent
*/
class DivisionDao extends BaseDao
{
/**
* 设置对应的模型类
* @return string
*/
protected function setModel(): string
{
// 这里的 Division::class 必须对应您实际的 Model 文件
return Division::class;
}
/**
* 获取列表 (示例方法,可根据实际业务补充)
* @param array $where
* @param string $field
* @param int $page
* @param int $limit
* @return array
* @throws \think\db\exception\DataNotFoundException
* @throws \think\db\exception\DbException
* @throws \think\db\exception\ModelNotFoundException
*/
public function getList(array $where, string $field = '*', int $page = 0, int $limit = 0)
{
return $this->search($where)->field($field)->when($page && $limit, function ($query) use ($page, $limit) {
$query->page($page, $limit);
})->order('id', 'DESC')->select()->toArray();
}
}二:检查对应的 Model(模型)文件是否存在
Dao 层需要依赖 Model 层来操作数据库。请检查 /app/model/agent/ 目录下是否存在 Division.php 文件。 如果不存在,您同样需要创建它:
<?php
namespace app\model\agent;
use crmeb\basic\BaseModel;
class Division extends BaseModel
{
// 设置对应的数据表名 (请替换为您实际的数据库表名,例如 eb_division)
protected $name = 'division';
// 设置主键
protected $pk = 'id';
}
