mirror of
https://gitee.com/fastadminnet/framework.git
synced 2026-07-02 05:02:48 +08:00
修正driver类 Model类get和all方法支持闭包查询
This commit is contained in:
@@ -604,12 +604,18 @@ abstract class Model implements \JsonSerializable, \ArrayAccess
|
||||
/**
|
||||
* 查找单条记录
|
||||
* @access public
|
||||
* @param array $data 主键值
|
||||
* @param mixed $data 主键值或者查询条件(闭包)
|
||||
* @param bool $cache 是否缓存
|
||||
* @return mixed
|
||||
*/
|
||||
public static function get($data = '', $cache = false)
|
||||
{
|
||||
$db = self::db();
|
||||
if ($data instanceof \Closure) {
|
||||
call_user_func_array($data, [ & $db]);
|
||||
$data = [];
|
||||
}
|
||||
|
||||
if ($cache) {
|
||||
// 查找是否存在缓存
|
||||
$name = basename(str_replace('\\', '/', get_called_class()));
|
||||
@@ -620,7 +626,7 @@ abstract class Model implements \JsonSerializable, \ArrayAccess
|
||||
}
|
||||
}
|
||||
|
||||
$result = self::db()->find($data);
|
||||
$result = $db->find($data);
|
||||
|
||||
if ($cache) {
|
||||
// 缓存模型数据
|
||||
@@ -632,13 +638,18 @@ abstract class Model implements \JsonSerializable, \ArrayAccess
|
||||
/**
|
||||
* 查找所有记录
|
||||
* @access public
|
||||
* @param mixed $data 主键列表
|
||||
* @param mixed $data 主键列表或者查询条件(闭包)
|
||||
* @param string $with 关联预查询
|
||||
* @return mixed
|
||||
*/
|
||||
public static function all($data = [], $with = '')
|
||||
{
|
||||
return self::db()->with($with)->select($data);
|
||||
$db = self::db();
|
||||
if ($data instanceof \Closure) {
|
||||
call_user_func_array($data, [ & $db]);
|
||||
$data = [];
|
||||
}
|
||||
return $db->with($with)->select($data);
|
||||
}
|
||||
|
||||
/**
|
||||
|
||||
@@ -2267,7 +2267,9 @@ abstract class Driver
|
||||
} else {
|
||||
// 未注册监听则记录到日志中
|
||||
Log::record('[ SQL ] ' . $this->queryStr . ' [ RunTime:' . $runtime . 's ]', 'sql');
|
||||
Log::record('[ EXPLAIN : ' . var_export($result, true) . ' ]', 'sql');
|
||||
if (!empty($explain)) {
|
||||
Log::record('[ EXPLAIN : ' . var_export($explain, true) . ' ]', 'sql');
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user