簡體   English   中英

不插入空值

[英]Not inserting null values

我試圖在窗體的todo輸入中插入多個值。 但是如果我沒有為任何輸入輸入值,則在數據庫中插入空值。 這是我的控制器動作:

public function actionAdd()
{       
    if (Yii::$app->request->isAjax) {
        $request = Yii::$app->request;
        $add = new Project();
        $add->project_name = $request->post('project');
        $add->deadline = $request->post('deadline');
        $add->profile_id = $request->post('profile_id');
        $add->project_status = "Running";
        $add->save();
        $getlast = Yii::$app->db->getLastInsertId();
        $todo = $request->post('todo');

        if (isset($todo)) {
            foreach ($todo as $to) {
                $add = new Todo();
                $add->todo_name=$to;
                $add->status="Running";
                $add->project_id=$getlast;
                $add->save();
            }
        }
        echo json_encode(TRUE); die;
    }
    echo json_encode(FALSE);die;
}

形式是:

<form class="formclass" method="POST" action="<?php echo Yii::$app->request->baseUrl;?>/todo/add/" role="form"  id="register-form" novalidate="novalidate">

                  <label>    Project Name: </label>       <input type="name" name="project" class="form-control"  placeholder="Project Name" required><br><br>
                  <input type="hidden" name="profile_id" value="<?php echo $profile_id;?>">
                  <label>    Todo: </label><br>
                  <textarea type="text" name="todo[]" placeholder="Todo Description..."></textarea>
                  <div id="dynamicInput">
                  <span class="glyphicon glyphicon-plus" onClick="addInput('dynamicInput');"></span>
                    </div><br>
                  <label> Project Deadline:</label><br>
                  <input type="date" name="deadline"><br><br>
                  <button type="submit" class="btn btn-default">Add Project</button><BR><BR>                      
        </form>  

而jquery是:

var counter = 1;
var limit = 10;
function addInput(divName)
{ 
  if (counter != limit) 
   {
          var newdiv = document.createElement('div');
          newdiv.innerHTML = "<br><textarea type='text' name='todo[]' placeholder='Todo Description...'></textarea>";
          document.getElementById(divName).appendChild(newdiv);    
          counter++;     
    }
}

可能是你的問題與驗證規則有關..

檢查這個並且僅用於調試嘗試使用$ add-> savel(false)

         $add = new Todo();
            $add->todo_name=$to;
            $add->status="Running";
            $add->project_id=$getlast;
            $add->save(false);

如果在這種情況下插入行檢查驗證規則(最終評論臨時)..用於查找錯誤的規則或條件

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM