如果用$this->dao->update($id, $edit),也會報錯Non-static method think\db\BaseQuery::update() should not be called statically
以下是Dao的部分代碼:
<?php
declare (strict_types=1);
namespace app\dao\user\family;
use think\model;
use app\dao\BaseDao;
use app\model\user\family\UserFamily;
use app\model\user\User;
/**
* 用戶家庭
* Class UserFamilyDao
* @package app\dao\user\family
*/
class UserFamilyDao extends BaseDao
{
/**
* @var string
*/
protected $alias = '';
/**
* @var string
*/
protected $join_alis = '';
/**
* 設(shè)置模型
* @return string
*/
protected function setModel(): string
{
return UserFamily::class;
}
protected function joinModel(): string
{
return User::class;
}
/**
* 關(guān)聯(lián)模型
* @param string $alias
* @param string $join_alias
* @return \crmeb\basic\BaseModel
*/
public function getModel(string $alias = 'f', string $join_alias = 'u', $join = 'left')
{
$this->alias = $alias;
$this->join_alis = $join_alias;
/** @var User $User */
$user = app()->make($this->joinModel());
$table = $user->getName();
return parent::getModel()->withTrashed()->alias($alias)->join($table . ' ' . $join_alias, $alias . '.family_master = ' . $join_alias . '.uid', $join);
}
/**
* 獲取列表
* @param array $where
* @param string $field
* @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->searchWhere($where)->field($field)->when($page, function ($query) use ($page, $limit) {
$query->page($page, $limit);
})->order('id desc')->select()->toArray();
}