模型中的屬性可以像普通物件屬性一樣被訪問$model->attribute;也可以以陣列元素方式訪問$model[attribute]。
屬性標籤
獲取屬性標籤
// 顯示為 "name"
echo $model->getattributelabel('name');
給模型設定場景,有兩種方式
// 場景作為屬性來設定
$model = new user;
$model->scenario = 'login';
// 場景通過構造初始化配置來設定
$model = new user(['scenario' => 'login']);
可以給模型設定多個場景,如下圖:給user模型設定了登陸和註冊兩個應用場景
有時你想一條規則只在某個 場景 下應用,為此你可以指定規則的on
屬性,如下所示:
public function rules()
或在控制器中這樣寫
$model = new contactform();
在場景中列出的屬性就是安全屬性,只有安全屬性才能被塊賦值。
[[yii\base\model::scenarios()]] 方法提供兩個用處:定義哪些屬性應被驗證,定義哪些屬性安全。 在某些情況下,你可能想驗證乙個屬性但不想讓他是安全的,可在scenarios()方法中屬性名加乙個驚嘆號 !。 例如像如下的secret屬性。
public function scenarios()
當模型在login
場景下,三個屬性都會被驗證,但只有username
和password
屬性會被塊賦值, 要對secret
屬性賦值,必須像如下例子明確對它賦值。
$model->secret = $secret;
public function rules()
模型通常要匯出成不同格式,你可能想將模型的乙個集合轉成json或excel格式, 匯出過程可分解為兩個步驟,第一步,模型轉換成陣列;第二步,陣列轉換成所需要的格式。 你只需要關注第一步,因為第二步可被通用的資料轉換器如[[yii\web\jsonresponseformatter]]來完成。
將模型轉換為陣列最簡單的方式attributes屬性$arr = $model->attributes
更靈活強大的方式是通過toarray()方法,它是實現 restful風格的方式。 $model->toarray()
樹模型幾個知識點
id3無法處理連續特徵 c4.5可以處理連續特徵,用資訊增益率選擇 特徵,遇到連續特徵的時候,依次二分樣本,根據資訊增益獲得最佳分割點 id3和c4.5都只能處理分類問題,cart既能處理分類問題,又能處理回歸問題 cart分割點的選擇粒度更細,根據gini係數,選擇某個特徵的某個值作為分割點 分為...
關於防止sql注入的幾個知識點
1.pdo預處理是首選。你可以把他看成是要執行的sql的已經編譯過的模板,它可以用變數引數進行定製 它有兩個顯著優點 1.1 查詢僅需解析一次,但可以用相同或者不同引數執行多次。換句話說如果要以不同的引數執行同樣的語句執行多次,利用pdo可以大大降低應用程式的速度。1.2 提供給預處理的語句不需要攜...
C 的幾個知識點
1 陣列的氣泡排序 int nums new int int temp 0 for int j 0 j nums.length 1 j for int i 0 i nums.length i console.readkey 2 反轉語句 array.reverse nums for int i le...