mirror of
https://gitee.com/fastadminnet/framework.git
synced 2026-07-07 07:12:47 +08:00
改进模型类对主键的自动读取
This commit is contained in:
@@ -30,7 +30,7 @@ abstract class Model implements \JsonSerializable, \ArrayAccess
|
|||||||
protected static $event = [];
|
protected static $event = [];
|
||||||
|
|
||||||
// 数据表主键 复合主键使用数组定义
|
// 数据表主键 复合主键使用数组定义
|
||||||
protected $pk = 'id';
|
protected $pk;
|
||||||
// 错误信息
|
// 错误信息
|
||||||
protected $error;
|
protected $error;
|
||||||
// 当前模型名称
|
// 当前模型名称
|
||||||
@@ -177,7 +177,7 @@ abstract class Model implements \JsonSerializable, \ArrayAccess
|
|||||||
*/
|
*/
|
||||||
public function getPk($table = '')
|
public function getPk($table = '')
|
||||||
{
|
{
|
||||||
if (!$this->pk) {
|
if (empty($this->pk)) {
|
||||||
$this->pk = self::db()->getTableInfo($table, 'pk');
|
$this->pk = self::db()->getTableInfo($table, 'pk');
|
||||||
}
|
}
|
||||||
return $this->pk;
|
return $this->pk;
|
||||||
@@ -272,8 +272,9 @@ abstract class Model implements \JsonSerializable, \ArrayAccess
|
|||||||
// 获取自动增长主键
|
// 获取自动增长主键
|
||||||
if ($result && $getInsertId) {
|
if ($result && $getInsertId) {
|
||||||
$insertId = self::db()->getLastInsID();
|
$insertId = self::db()->getLastInsID();
|
||||||
if (is_string($this->pk) && $insertId) {
|
$pk = $this->getPk();
|
||||||
$this->data[$this->pk] = $insertId;
|
if (is_string($pk) && $insertId) {
|
||||||
|
$this->data[$pk] = $insertId;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
// 新增回调
|
// 新增回调
|
||||||
@@ -731,7 +732,7 @@ abstract class Model implements \JsonSerializable, \ArrayAccess
|
|||||||
{
|
{
|
||||||
// 记录当前关联信息
|
// 记录当前关联信息
|
||||||
$model = $this->parseModel($model);
|
$model = $this->parseModel($model);
|
||||||
$localKey = $localKey ?: $this->pk;
|
$localKey = $localKey ?: $this->getPk();
|
||||||
$foreignKey = $foreignKey ?: Loader::parseName($this->name) . '_id';
|
$foreignKey = $foreignKey ?: Loader::parseName($this->name) . '_id';
|
||||||
return $this->relation->hasOne($model, $foreignKey, $localKey);
|
return $this->relation->hasOne($model, $foreignKey, $localKey);
|
||||||
}
|
}
|
||||||
@@ -765,7 +766,7 @@ abstract class Model implements \JsonSerializable, \ArrayAccess
|
|||||||
{
|
{
|
||||||
// 记录当前关联信息
|
// 记录当前关联信息
|
||||||
$model = $this->parseModel($model);
|
$model = $this->parseModel($model);
|
||||||
$localKey = $localKey ?: $this->pk;
|
$localKey = $localKey ?: $this->getPk();
|
||||||
$foreignKey = $foreignKey ?: Loader::parseName($this->name) . '_id';
|
$foreignKey = $foreignKey ?: Loader::parseName($this->name) . '_id';
|
||||||
return $this->relation->hasMany($model, $foreignKey, $localKey);
|
return $this->relation->hasMany($model, $foreignKey, $localKey);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -184,7 +184,7 @@ class Merge extends Model
|
|||||||
$table = is_int($key) ? self::db()->name($model)->getTable() : $model;
|
$table = is_int($key) ? self::db()->name($model)->getTable() : $model;
|
||||||
// 处理关联模型数据
|
// 处理关联模型数据
|
||||||
$data = $this->parseData($name, $this->data);
|
$data = $this->parseData($name, $this->data);
|
||||||
self::db()->table($table)->strict(false)->where($this->fk, $this->data[$this->pk])->update($data);
|
self::db()->table($table)->strict(false)->where($this->fk, $this->data[$this->getPk()])->update($data);
|
||||||
}
|
}
|
||||||
// 新增回调
|
// 新增回调
|
||||||
$this->trigger('after_update', $this);
|
$this->trigger('after_update', $this);
|
||||||
@@ -238,7 +238,7 @@ class Merge extends Model
|
|||||||
$result = self::db()->delete($this->data);
|
$result = self::db()->delete($this->data);
|
||||||
if ($result) {
|
if ($result) {
|
||||||
// 获取主键数据
|
// 获取主键数据
|
||||||
$pk = $this->data[$this->pk];
|
$pk = $this->data[$this->getPk()];
|
||||||
|
|
||||||
// 删除关联数据
|
// 删除关联数据
|
||||||
foreach (static::$relationModel as $key => $model) {
|
foreach (static::$relationModel as $key => $model) {
|
||||||
|
|||||||
Reference in New Issue
Block a user