iT邦幫忙

2019 iT 邦幫忙鐵人賽

DAY 8
1
Modern Web

你說Codeigniter還能怎麼做?系列 第 8

[Day08] 初學測試CI-Mongo指令

上次我們終於把MongoDB環境裝好也正常運行,接下來來帶各位嘗試MongoDB指令:

JSON View Plugin

首先我們可以下載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
成功連結

Mod rewrite

那我們要怎麼樣才能去除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就成功摟!
再度測試

MongoDB指令

下一步我們就修改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設定


上一篇
[Day07] Mongo載入問題
下一篇
[Day09] Config設定
系列文
你說Codeigniter還能怎麼做?30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言