2015-11-17 / JSN / 0 Comments / 100 次瀏覽
- 欄位可為 NULL 時,不用指定 default 為 NULL ,否則會出錯。
- 型態為 timestamp ,用來記錄該筆資料的變動時間時,不可指定 default 如
'updatetime' => array
(
'type' => 'timestamp',
),
會自動產生屬性『on update CURRENT_TIMESTAMP』與預設值是『CURRENT_TIMESTAMP』
- 如果要替欄位加上註解,這在官網中似乎沒提到。可以多添加一個叫做 comment 的屬性:
'content' => array
(
'type' => 'varchar',
'constraint' => 50,
'comment' => '內容' //添加這個
)
2015-11-05 / JSN / 0 Comments / 370 次瀏覽
CI 3.0.3 須要注意要手動指定 config/config.php
$config['base_url'] = '';
如果你的 CI 同時會在正式環境與開發環境,也就是會在實際線上的網域與 localhost 中運作。可以參考官方這篇做這麼修改參數 $config[‘base_url’] 。
$allowed_domains = array('localhost', 'jsnwork.kiiuo.com'); //你允許的網域,其中一個指定 localhost
$default_domain = 'domain1.tld'; //指定正式環境的預設網域
if (in_array($_SERVER['HTTP_HOST'], $allowed_domains, TRUE))
{
$domain = $_SERVER['HTTP_HOST'];
}
else
{
$domain = $default_domain;
}
if ( ! empty($_SERVER['HTTPS']))
{
$config['base_url'] = 'https://'.$domain;
}
else
{
$config['base_url'] = 'http://'.$domain;
}
這樣在 localhost 中開發,就會優先使用 localhost。在線上查看,會使用你允許的 $allowed_domains。簡單來說,每次新專案都要手動指定,是為了解決自動判別的不安全。
但如果你的本機開發是放在子目錄底下。如我的CI放在 http://localhost/CI_jsn 那怎麼改?
$allowed_domains = array('localhost', 'cijsn.kiiuo.com');
$default_domain = 'cijsn.kiiuo.com';
if (in_array($_SERVER['HTTP_HOST'], $allowed_domains, TRUE))
{
//改成這樣。當發生在 localhost 的時候,添加結尾路徑
if ($_SERVER['HTTP_HOST'] == "localhost")
{
$domain = $_SERVER['HTTP_HOST'] . "/CI_jsn";
}
else
{
$domain = $_SERVER['HTTP_HOST'];
}
}
else
{
$domain = $default_domain;
}
if ( ! empty($_SERVER['HTTPS']))
{
$config['base_url'] = 'https://'.$domain;
}
else
{
$config['base_url'] = 'http://'.$domain;
}
不過我覺得這樣有點凌亂,這邊就不做優化了。我覺得這次的修改應該會稍有爭議,覺得應該還會被修正。
2015-05-08 / JSN / 2 Comments / 503 次瀏覽
1. 在 Windows 安裝好 Composer 以後,如果我們要下載 Codeigniter,該怎麼做呢?
2. 首先,先在命令提示字元 cmd 進入你的專案
> cd c:\xampp\htdocs\www\test
3. 接著使用 Composer 建立專案指令
> composer create-project codeigniter/framework
4. 這樣就可以下載下來囉
2015-01-13 / JSN / 0 Comments / 1,795 次瀏覽
通常是因為網址夾帶了不允許的符號,所以會出現這段警告訊息。例如如果網址使用了半形逗號『,』如 http://網址?id=”2,3,4″那就會產生警告。這時候,需要到 config.php 修改設定,將
$config['permitted_uri_chars'] = 'a-z 0-9~%.:_\-';
修改為
$config['permitted_uri_chars'] = 'a-z 0-9~%.,:_\-';
或是把permitted_uri_chars的規則添加你要允許的字元。這樣就可以囉!預設沒有允許逗號,對於逗號的安全性我就沒有特別研究了,不知道原因是什麼,需要深入了解的朋友在查查網路囉
2014-10-29 / JSN / 0 Comments / 551 次瀏覽
Controller, Model, Libraries 裡的文件需要改成大寫
在system/core/Codeigniter.php 376行
$class = ucfirst($RTR->class);
可以知道強制檔名開頭為大寫。
如果本機是 Windows 開發,遠端是 Linux,因為Win是不區分大小寫,所以再升級不會發覺。但是Linux 有區分。可以配合網友提供的 http://sofree.cc/ken-rename/ 這套軟體來批次修改檔名。
其他有非常多的細項,打算在 Codeigniter 3.1 做移除。可參考官網原文說明
http://www.codeigniter.com/userguide3/installation/upgrading.html