私の見解では、私は次のコードを持っています:
if (($news['newsvideo'] !="") || ($news['newsvideo'] != NULL)) {
$newdata4 = array(
'tablename' => 'news',
'recordid' => $news['newsid'],
'fieldname' => 'newsid',
'fieldToUpdate' => 'newsvideo',
'dpage' => 'news/editNews'
);
$this->session->set_userdata($newdata4);
echo anchor('news/updateOneField', 'Delete Video?','class=btn');
}
if (($news['newsvideo_en'] !="") || ($news['newsvideo_en'] != NULL)) {
$newdata5 = array(
'tablename' => 'news',
'recordid' => $news['newsid'],
'fieldname' => 'newsid',
'fieldToUpdate' => 'newsvideo_en',
'dpage' => 'news/editNews'
);
$this->session->set_userdata($newdata5);
echo anchor('news/updateOneField', 'Delete Video?','class=btn');
}
私のコントローラーの機能は次のとおりです。
public function updateOneField()
{
$tablename = $this->session->userdata('tablename');
$id = $this->session->userdata('recordid');
$fieldname = $this->session->userdata('fieldname');
$fieldToUpdate = $this->session->userdata('fieldToUpdate');
//$this->newsModel->save(array($fieldToUpdate => ''), $id);
//$newsid = $id;
echo "Table name: ". $tablename . "<br/>";
echo "Id: " . $id. "<br/>";
echo "Field name: " . $fieldname. "<br/>";
echo "Field to update: " . $fieldToUpdate. "<br/>";
die();
// destroy the session after the update
$this->session->unset_userdata('tablename');
$this->session->unset_userdata('recordid');
$this->session->unset_userdata('fieldname');
$this->session->unset_userdata('fieldToUpdate');
$this->displayEditNewsForm($newsid);
}
ここで、ニュースビデオを削除したい最初のリンクをクリックすると、ニュースビデオフィールドを更新しようとすると、newsvideo_enが更新されます。つまり、後で配列の値を上書きします。誰かがそれを回避し、正しいフィールドを更新する方法を知っていますか?
よろしく、ゾラン