1. 程式人生 > >yii2自動更新時間,根據條件設定指定值,接受多選框的值

yii2自動更新時間,根據條件設定指定值,接受多選框的值

gii自動生成的_form.php檔案中,我們可以根據程式碼$model->isNewRecord 返回的值,來判斷當前是增加還是更新,在form.php檔案中,還可以根據它的屬性值給欄位input框賦予預設值

connect欄位為多選框欄位,前臺傳到後臺的資料預設是陣列格式。該欄位對應是讓tostring方法處理,先把它的值賦給靜態變數$connect,然後在beforeSave中把陣列格式化成字串,在返回,存入資料庫。

<?php

namespace backend\models;

use Yii;

use \yii\db\ActiveRecord;

class Newdocument extends ActiveRecord
{

    public function beforeSave($insert){
        if(parent::beforeSave($insert)){
            if($this->isNewRecord){//判斷是更新還是插入
                $this->connect = implode(',', $this->connect);
                $this->create_time = time();

            }else{
                $this->update_time = time();
                $this->connect = implode(',', $this->connect);
            }
           return true;
        }else{

            return false;
        }
    }
    /**
     * @inheritdoc
     */
    public static function tableName()
    {
        return 'document';
    }

    /**
     * @inheritdoc
     */
    public function rules()
    {
        return [
            [[  'create_time','update_time'], 'integer'],

            ['connect','tostring'],
        ];
    }

    public function tostring(){//可通過方法單獨控制某個欄位,也可以直接通過beforesave方法控制
            //if($this->isNewRecord){//判斷是更新還是插入
                //$this->connect = implode(',', $this->connect);
            //}else{
               // $this->connect = implode(',', $this->connect);
            //}
  &n