上次我們終於把MongoDB環境裝好也正常運行,接下來來帶各位嘗試MongoDB指令:
首先我們可以下載Chrome JSON套件,這個套件可以直接把網頁上印出的JSON直接整理好,比較好去做閱讀或測試。
接著我們在把config/mongo_db.php
授權打開,上次是先暫時關閉:
下一步我們可以先新建一個unit.php
,在controllers
裡面,接著我們會在Unit
來去做測試,記得controllers
新增時,檔案的字首必須要大寫,並且在裡面建立class
,記得class
名稱跟檔名一樣字首也要大寫:
<?php defined('BASEPATH') OR exit('No direct script access allowed');
class Unit extends CI_Controller {
public function __construct() {
parent::__construct();
}
}
接著我們在裡面新增一個function
,:
...
class Unit extends CI_Controller {
...
function get_table_data() {
echo 'Hello!';
}
}
完成之後我們可以去試試看網站http://ip-address/unit/get_table_data
。
接下來他會發生一點小錯誤,無法去連結網站,
至於為什麼呢?主要是他連結時會多加一個index.php的路徑,
我們在多加上去試試http://ip-address/index.php/unit/get_table_data
那我們要怎麼樣才能去除index.php呢?這時就要打開mod_rewrite
,接著我們進一步進入遠端伺服器,輸入指令安裝:
sudo a2enmod rewrite
因為在Ubuntu下,所有Apache Mod都會放在mod-avaliable之下,另外放在mod-enable則是已經被開啟的,然而輸入完指令,目前依然沒有任何效果,所以我們還要再到Apache2裡面設定:
sudo nano /etc/apache2/sites-available/000-default.conf
接著我們寫入以下資料,記住要新增在<VirtualHost *:80>
底下:
<Directory /var/www/html>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
儲存後,接著重啟Apache2服務即可完成,接下來我們在離開伺服器。
sudo service apache2 restart
我們回到檔案裡面去新增一個叫做.htaccess
的檔案,記得是跟application
是同個目錄不是子目錄:
下一步在裡面新增內容並儲存上傳:
RewriteEngine On
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ index.php/$1 [L]
接著我們在打開網站去除index.php
就成功摟!
下一步我們就修改get_table_data
來測試指令,所有的指令可以在libraries/Mongo_db.php
找到,這裡的註解比官方文件寫的還要清楚,目前我先做一個範例示範:
首先為了測試我們需要有資料,所以我們新建一個user_main
的資料表:
...
function create_user() {
// PHP的陣列我們會用array()來表示
$dataArray = array(
// 裡面的物件用 key => value 來表示
'user_name'=> 'Jone',
'user_email'=> 'jone@gmail.com'
);
// 最後我們印出新增的內容
echo $this->mongo_db->insert('user_main', $dataArray);
}
接著我們透過網址進行新增http://ip-address/unit/create_user
,新增完成後他會跑出1的字樣,下一步我們就透過get_table_data
去查詢資料:
function get_table_data() {
$data = $this->mongo_db->get('user_main');
echo json_encode($data);
}
如此一來我們就大功告成拉!
這次的教學就到這裡,如果有其他的需求可以透過libraryies/mongo_db.php
去學習,
那今天就到這~各位晚安!
Next station ... Config設定