Ⅰ php中使用YII框架的問題
因為你Users Model的對應的表明沒改,在這個Users模型類里,有這樣的方法:
public static function tableName()
{
return '{{%users1}}'; // users1是你的新表名
}
而且直接執行Sql查詢,好像不是這樣用的吧?
我一般都是這樣的
Yii::$app->getDb()->createCommand($sql)->queryAll()
Yii::$app->getDb()->createCommand($sql)->queryOne()
Yii::$app->getDb()->createCommand($sql)->excute()
....
區別你可以看看源代碼的說明。(Yii2上的用法,yii1.x應該差不多,你稍微改改就應該沒問題)
Ⅱ php yii2框架 模型層放在的是哪一個文件夾
model model model
Ⅲ php yii框架怎麼設置字體編碼格式
今天在開發的時候需要將excel文件中數據導入到相關的配置文件中,我按照過去經常使用的方法,先將excel導出成csv文件,然後使用fgetcsv函數讀取文件的內容,通過Yii框架中的CConfigure類導出成配置文件,然後在檢查的時候發現導出的數組中有些值中間有一些多餘的反斜杠,這些反斜杠一般出現在繁體中文或者日文的文字中。
一開始我先檢查了csv和excel文件中的欄位,發現並沒有什麼問題,之後我查看了CConfigure類中的saveAsString函數,發現他使用了php中的var_export函數來實現導入配置文件的功能,然後,我又使用var_export輸出會出現問題的某個欄位,發現確實在字元串中添加了反斜杠,而我直接使用echo或者var_mp輸出時,則沒有這個情況發生,這個時候我明白問題是出在var_export這個函數上。
在查閱了相關的資料後我發現var_export這個函數會自動轉義,也許是這個原因導致了字元串中自動添加了反斜杠,可是字元串本身並沒有特殊字元,為什麼var_export還是會添加反斜杠,這個讓我百思不得其解,我查看了出現問題的字元串的2進制編碼,發現出現反斜杠的地方本身的單個字元的ascii碼也是反斜杠,也就是說可能是var_export在轉義時針對單個反斜杠字元進行了轉義?這個原因我最後也沒有搞明白。
不過在我不知道如何解決這個問題的時候,我突然想到我的csv的文字編碼是gbk的,因為是通過excel直接轉的格式,然後我導出的文件編碼是utf-8的格式,同時我的代碼本身也是utf-8的格式,雖然我最後通過格式轉換,成功把gbk的字元串轉換成utf-8導出,但是在轉換的過程中可能會出現問題(當時想的是這樣,不過之後考慮了一下,因為之前在gbk格式下使用var_export已經出現了問題,因此應該不是轉換過程中的問題,應該是var_export處理gbk格式的漢字字元串時產生的bug?),於是我將csv文件全部轉換成utf-8格式,重新導入文件,成功解決。
其實在解決的過程中,很早就想到可能是編碼的問題,但是一直沒有發現excel轉換的csv文件的格式問題,因為之前導出的配置文件沒有漢字,因此沒有出現過這一類的問題,於是就忽略了,不過最後雖然解決了問題,但是問題本身的原因還是不明,推測極有可能是因為gbk編碼和var_export的兼容導致的問題,果然開發中應該還是盡量使用utf-8統一編碼,應該會減少很多不明的錯誤。
2013.1.19更新:經過思考,覺得應該是對於gbk編碼的字元串使用var_export時,函數對於單個字元表示為反斜杠的字元添加了反斜杠的轉義,因此使得該處的字元變為兩個反斜杠,同時因為在顯示時使用了gbk編碼,導致添加的反斜杠作為前一個漢字字元的一部分被顯示,而原來的反斜杠字元則單獨顯示了出來。
Ⅳ 如何使用PHP的Yii框架中的緩存功能
這個應用可以使用JavaConfig完成配置。我把它切分為下面幾個部分:
ServicesConfig(服務配置)
無需掃描組件,配置真的非常簡單:
@Configuration
public class ServicesConfig {
@Autowired
private AccountRepository accountRepository;
@Bean
public UserService userService() {
return new UserService(accountRepository);
}
Ⅳ php中使用yii框架技術如何將mysql資料庫中的內容讀出來並顯示在頁面上(越詳細越好)
$datas=Article::model()->findAll();
這個就是獲取數據的樣子了
article是model的名稱,
foreach($datas as $data){
echo $data->id;
echo "<br/>";
echo $data->name;
echo $data->xx;
}
Ⅵ php yii框架操作redis問題。可以獲取到redis對象信息,但是set總是報錯。
從錯誤提示來看,是許可權問題。檢查一下redis連接配置,有沒有設置密碼等,然後自己本地先連接一下redis看看能不能連接,如果能正常連接,再使用同樣的配置,用Yii來連接。
Ⅶ 關於phpYII框架的規范寫法疑問
通常情況下MVC也是是非常苛刻的非得一定怎麼樣,如果你的業務邏輯只有兩三句代碼,且就只在這個地方使用的話,完全可以寫在action裡面。
通常情況下,我們會將業務邏輯進行封裝,比如封裝到某個類裡面,當你需要的時候,你可以調用這個類來進行業務邏輯處理。根據業務邏輯的不同,可能最終處理的方式不一樣,比如,比較通用點的,和具體的數據沒有關系的,你可以封裝為component(放到components目錄下),如果和具體的數據有關系,你也可以封裝一些基本的類,放到model目錄下(這個目錄下的內容會自動載入),然後使用就可以了。當然,你也可以寫成extension之類的。
處理方式有很多,當你經驗多起來的時候你自然就知道怎麼做了。
Ⅷ php Yii 框架問題!
yii的component組件有點像對php一些功能的擴充。
在yii應用app啟動時載入。並發生作用。
比如像對http請求的處理組件,緩存組件,授權組件,資料庫組件,會話組件。
網址處理組件。
這幅圖可以說明,組件在框架中的作為。
Ⅸ PHP中的Yii框架的 assets文件夾怎麼老會新建文件
assets是對外公開的一個文件夾,在框架里使用到的JS,CSS文件都會自動的生成在assets里邊去,而assets里邊像MD5過的文件名是為了防止重復
Ⅹ php中yii框架問題
導入componets