一个简单的循环遍历数组并删除数据库记录...
控制器:
foreach ($deletedTags as $deletedTag) {
$tagId = $this->tags_model->get_tag_id($deletedTag);
$this->tags_model->delete_tag_association_by_tag($workId, $tagId);
}
$deletedTags
是一个数组,例如:
Array ( [0] => purple [1] => trees [2] => green )
型号:
function get_tag_id($tag) {
$this->db->where('tags.name', $tag);
$query = $this->db->get(self::TABLE);
return $query->row()->id;
}
当$deletedTags
中只有一个值时,它可以正常工作。当有多个值时,模型函数get_tag_id($tag)
在第二个循环中断开。它在行return $query->row()->id;
上出错:
Undefined property: stdClass::$id
知道为什么吗?
答案 0 :(得分:0)
我已经解决了。由于某种原因,它是错误的,因为它只能在db中找到数组中的第一个标记(即使db中存在其他标记)。我添加了tag_exists检查,一切都很好......
foreach ($deletedTags as $deletedTag) {
if ($this->tags_model->tag_exists($deletedTag)) {
$tagId = $this->tags_model->get_tag_id($deletedTag);
$this->tags_model->delete_tag_association_by_tag($workId, $tagId);
}
}
怪异。