改进Model类的toArray方法 支持获取器读取输出

This commit is contained in:
thinkphp
2016-04-25 19:55:06 +08:00
parent eb08ace50b
commit 94c1ffb986

View File

@@ -152,15 +152,18 @@ abstract class Model implements \JsonSerializable, \ArrayAccess
$item = []; $item = [];
foreach ($this->data as $key => $val) { foreach ($this->data as $key => $val) {
if ($val instanceof Model) { if ($val instanceof Model) {
// 关联模型对象
$item[$key] = $val->toArray(); $item[$key] = $val->toArray();
} elseif (is_array($val) && $val[0] instanceof Model) { } elseif (is_array($val) && isset($val[0]) && $val[0] instanceof Model) {
// 关联模型数据集
$data = []; $data = [];
foreach ($val as $k => $value) { foreach ($val as $k => $value) {
$data[$k] = $value->toArray(); $data[$k] = $value->toArray();
} }
$item[$key] = $data; $item[$key] = $data;
} elseif (is_scalar($val)) { } else {
$item[$key] = $val; // 模型属性
$item[$key] = $this->$key;
} }
} }
return !empty($item) ? $item : []; return !empty($item) ? $item : [];