データベース内のフィールドは uid、uname です
ページフォームの名前はそれぞれ id と name です
モデルコード:
protected $_map = array( 'id' => 'uid', 'name' => 'uname', );
$model = M('Demo'); $list = $model -> select(); print_r($list); $list = $model -> parseFieldsMap($list); echo '<br/><br/>'; print_r($list);
実際、M メソッドと D メソッドは区別する必要があります。M メソッドは定義したモデル ファイルをロードせず、$_map は作成したモデル ファイル内で定義されます。 $list = D('Demo') -> parseFieldsMap($list);
実際、M メソッドはモデル ファイルをロードしません。 $_map は独自に定義されていますが、作成されたモデル ファイルでは次のように呼び出す必要があります: $list = D('Demo') -> parseFieldsMap($list); 公式ドキュメントには M と書かれています。 D を試しましたが、それもうまくいきませんでした~
それは parseFieldsMap メソッドの定義からわかります:
Array ([uid] => 1 [ uname] => テスト)
は
Array ([id] => 1 [name] => テスト)
/** +---------------------------------------------------------- * 处理字段映射 +---------------------------------------------------------- * @access public +---------------------------------------------------------- * @param array $data 当前数据 * @param integer $type 类型 0 写入 1 读取 +---------------------------------------------------------- * @return array +---------------------------------------------------------- */ public function parseFieldsMap($data,$type=1) { // 检查字段映射 if(!empty($this->_map)) { foreach ($this->_map as $key=>$val){ if($type==1) { // 读取 if(isset($data[$val])) { $data[$key] = $data[$val]; unset($data[$val]); } }else{ if(isset($data[$key])) { $data[$val] = $data[$key]; unset($data[$key]); } } } } return $data; }
/** * 处理字段映射 * @access public * @param array $data 当前数据 * @param integer $type 类型 0 写入 1 读取 * @return array */ public function parseFieldsMap($data,$type=1) { // 检查字段映射 if(!empty($this->_map)) { foreach($data as $dkey => $dval){ if(is_array($dval)){ $data[$dkey] = self::parseFieldsMap($dval, $type); }else{ foreach ($this->_map as $key=>$val){ if($type==1) { // 读取 if(isset($data[$val])) { $data[$key] = $data[$val]; unset($data[$val]); } }else{ if(isset($data[$key])) { $data[$val] = $data[$key]; unset($data[$key]); } } } return $data; } } /* foreach ($this->_map as $key=>$val){ if($type==1) { // 读取 if(isset($data[$val])) { $data[$key] = $data[$val]; unset($data[$val]); } }else{ if(isset($data[$key])) { $data[$val] = $data[$key]; unset($data[$key]); } } }*/ } return $data; }