學習php的yii框架_對yii的理解
yii版本:yii-basic-app-2.0.12
index.php 中的require(__DIR__ . '/../vendor/autoload.php');的理解:__DIR__魔術常量代表當前執行檔案所在的目錄F:\phpStudy\WWW\yii2\web\
控制器(controllers)中的BaseController.php use app\models\system\AdminLog;//模型(models)中的system檔案下的AdminLog.php中定義了namespace app\models\system;和AdminLog類
模型(models)
public function rules()//models中的rules部分是一些表單的驗證規則 { return [ [['name', 'email'], 'required'], ['email', 'email'], ]; }
返回的是陣列,required表示為欄位必填。每個[]的最後一個值為引數,['email', 'email']為email型別。 系統預設的驗證規則: 字串長度[[ 'url', 'user_agent', 'admin_email', 'ip'], 'string', 'max' => 255] 去除首尾空白字元['email', 'trim']或['email', 'filter', 'filter' => 'trim'] 賦予預設值['age', 'default', 'value' => 18] 整數格式['age', 'integer'] 驗證碼['verificationCode', 'captcha'] 檔案上傳['primaryImage', 'file', 'extensions' => ['png', 'jpg', 'gif'], 'maxSize' => 1024*1024*1024] image :是否為有效的圖片檔案['primaryImage','image', 'extensions' => 'png, jpg,jpeg','minWidth' => 100,'maxWidth' => 1000,'minHeight' =>100,'maxHeight' => 1000,]
模型中attributeLabels()函式作用:hint作用,即表單中使用者插入資料時,提示使用者該欄位該填什麼內容
//可以不用設定
public function attributeLabels()
{
return [
'id' => 'ID',//id為資料表中的欄位名,ID為表單顯示的描述
'name' => '使用者名稱',
];
}
class AdminLog extends ActiveRecord; public static function tableName(){ return 'admin_log';//類名和資料表名不能直接對應,覆寫tableName()方法去顯式指定相關表名。 }
模型中的註釋:This is the model class for table "admin_log". @property integer $id (property意為特性、屬性)
public function primaryKey(){
return 'user_id';//自定義主鍵
}
模型(models)中class AdminLog extends \yii\db\ActiveRecord{}裡的成員方法參考:http://www.yiichina.com/doc/api/2.0/yii-db-activerecord 比如:primaryKey()返回此AR類的主鍵名稱、attributes()返回的列表的所有屬性名稱的模型。