[英]CodeIgniter 3 get all form post data and insert into database without making an array like cake php 3
[英]Serialize a POST array so that Cake PHP can insert into MySQL database
這很難解釋,因為我的代碼起作用了一半。
基本上這就是我所擁有的:
public function add() {
$this->set('branchingQuestions', $this->BranchingQuestion->find('all'));
if ($this->request->is('post')) {
$_POST['data']['Job']['branchingQuestions'] = mysql_escape_string(serialize($_POST['data']['Job']['branchingQuestions']));
var_dump($_POST['data']['Job']);
//die;
$this->Job->create();
if ($this->Job->save($this->request->data)) {
$this->Session->setFlash(__('The job has been saved.'));
return $this->redirect(array('action' => 'index'));
} else {
$this->Session->setFlash(__('The job could not be saved. Please, try again.'));
}
}
}
這在Cake PHP控制器中。 大部分代碼是通過Bake生成的。
無論如何,在我的POST數組中,是另一個在branchingQuestions名稱下的數組,因為它是一個數組,所以插入時出現錯誤。 但是,從var_dump中,我得到了數組已成功序列化的信息,現在它是一個字符串,與POST其余內容相同。 因此它應該工作。
但是,通過測試幾件事,似乎CakePHP甚至沒有意識到我已經使用序列化行更新了數組。 即使我的var_Dump提出了其他建議,它似乎也從未發生過。
['data'] ['job']包含了我所有的字符串和int's,例如['data'] ['job'] ['title'],它們被很好地插入了,但是為了測試我的理論,我也更改了['title '] 像這樣:
$_POST['data']['Job']['title'] = 120;
使SQL發出錯誤的標題是字符串。 但是它甚至都沒有改變,標題仍然在我的表中“測試”。
branchingQuestions這樣發布:
<select name='data[Job][branchingQuestions][question" + branchCount + "]'
我有一個動態表單,可以在需要時向其中添加更多選擇框,這就是為什么我在問題部分中有一個變量。 所有這些工作正常,var_dump給了我期望的結果。
實際上,您必須編輯$ this-> request-> data數組而不是$ _POST數組。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.