从数组中保存对象到数据库


Save objects to database from array

我试图从预定义的数据中保存几个对象。它只保存第一组数据,或者如果我更改代码,它将数据保存为"数组"。下面是代码:

<?php
$category = array(
    'Account/Profile',
    'Blogs',
);
$question = array(
    'How do I change my email notifications',
    'How do I edit my profile details',
    'What is a blog?',
);
$answer = array(
    '<p>To change your email notifications</p>',
    '<p>To change your profile details</p>',
    '<p>A weblog, or blog, is.</p>',
);

$questionCount = count($question);
for ($i = 0; $i <= $questionCount; $i++) {
    $faq           = new Object();
    $faq->category = $category[$i];
    $faq->question = $question[$i];
    $faq->answer   = $answer[$i];
}
$didSave = $faq->save();

我如何从数组中提取数据并使用该数据创建多个对象?

给你....

 $cats = array('Account/Profile', 'Blogs');
 $question = array(
  'How do I change my email notifications', 
  'What is a blog?',);
 $answer = array(
  '<p>To change your email notifications you can do so from notifications page</p>', 
  '<p>A weblog, or blog, is arguably one of the fundamental DNA pieces of most types of social networking site.</p>',);
//Then count the questions and iterate
 for($i=0;$i<=count($question);$i++)
  {
   $object = New Object; //Your object class
   //NEW OBJECT TO SAVE, I call it object, but you have to fill this in,
   //with whatever class/object it is youre creating, and saving
   $object->category = $cats[$i];
   $object->question = $question[$i];
   $object->answer = $answer[$i];
   $object->save();
  }

根据您的转发进行新编辑

 for($i=0;$i<=count($question);$i++)
 {
 $faq = new ElggObject();
 $faq->subtype = 'faq';
    $faq->container_guid = $CONFIG->site_guid;
    $faq->owner_guid = $CONFIG->site_guid;
 $faq->category = $cats[$i];
 $faq->question = $question[$i];
 $faq->answer = $answer[$i];
 $faq->access_id = $access;
 if($faq->save()) {
        system_message(elgg_echo("faq:add:success"));
    } else {
        register_error(elgg_echo("faq:add:error:save"));
    }
}