我有一个来自$_POST
的多维数组。它的键与blog_posts
表中的任一列或其关系的名称(例如author
)完全相同。
我想将$ _POST批量分配给匹配的对象及其关系。例如:
$_POST = array (
'blog_post' => array (
'title' => 'the title of the post',
'content' => 'the content of the post',
'date' => '23-09-2015',
'author' => array (
'name' => 'hydra',
'age' => 47,
'location' => 'Russia',
),
),
);
将映射到blog_post
对象和author
对象。
要牢记两件事:
我当前(显然是非工作的)解决方案将涉及:
array_walk($_POST, function(value, key){
if (is_array($value) && class_exists($key)) {
$object = new $key($value);
$object->save();
}
});
这只会保存第一个对象(blog_post
)。
编辑:目前我不关心安全性,我会在插入之前清理$ _POST,但主要问题是批量分配,而不必知道我正在使用哪个类并手动分配关系。
答案 0 :(得分:0)
您似乎错过了 object ZConnection1: TZConnection
ControlsCodePage = cGET_ACP
AutoEncodeStrings = False
Connected = True
DesignConnection = True
SQLHourGlass = True
HostName = 'localhost'
Port = 0
Database = 'MATestDB'
User = 'sa'
Protocol = 'mysql'
LibraryLocation = 'D:\aaad7\MySql\libmysql.dll'
end
object ZQuery1: TZQuery
Connection = ZConnection1
Active = True
SQL.Strings = (
'select * from matable1')
Params = <>
end
object DataSource1: TDataSource
DataSet = ZQuery1
end
object DBGrid1: TDBGrid
DataSource = DataSource1
end
object DBNavigator1: TDBNavigator
DataSource = DataSource1
end
和blog_post
之间的关系。如果您定义了关系,则无法保存author
,因为它将缺少必需的外键。
这可能有效:
author