order是mysql中的保留字,建議改成orders,否則用命令行的方式建order表會出錯(或者指定為`yii`.'order')
2017-03-01
"extra": {
"asset-installer-paths": {
"npm-asset-library": "vendor/npm",
"bower-asset-library": "vendor/bower",
"npm-searchable": false,
"bower-searchable": false
}
}
"asset-installer-paths": {
"npm-asset-library": "vendor/npm",
"bower-asset-library": "vendor/bower",
"npm-searchable": false,
"bower-searchable": false
}
}
2017-02-23
同樣為啥用 with()后 在下面的 foreach 循環中就不用再循環100次?
因為在$customers=Customer::find()->with('orders')->all();它是執行下面兩句
// 先執行sql: SELECT * FROM customer LIMIT 100;
// SELECT * FROM orders WHERE customer_id IN (1,2,...)
在第二句中已經把 orders 查詢出并且緩存了,所以再下面的循環中就不用再次重復從數據庫中查詢,而直接沖緩存中查詢.這里對應的是老師講的第一點知識.
因為在$customers=Customer::find()->with('orders')->all();它是執行下面兩句
// 先執行sql: SELECT * FROM customer LIMIT 100;
// SELECT * FROM orders WHERE customer_id IN (1,2,...)
在第二句中已經把 orders 查詢出并且緩存了,所以再下面的循環中就不用再次重復從數據庫中查詢,而直接沖緩存中查詢.這里對應的是老師講的第一點知識.
2017-02-15
@GeorgeYuan 我的理解是,如果加上 asArray()的話,那么 all()方法返回的就不是對象,而是一個數組了,所以無法再用 with().
2017-02-15