Kotchasan PHP Framework

การใช้งาน Model

การสร้างโมเดลสามารถทำได้ด้วยโค้ดด้านล่าง
namespace Index\Index;

class Model extends \Kotchasan\Model
{

   // ชื่อของการเชื่อมต่อ
  protected $conn = 'mysql';

  // code Model here
}

โมเดลของคชสารจะสืบทอดมาจาก Kotchasan\Model
ตัวแปร $conn ใช้กำหนดชื่อการเชื่อมต่อ ซึ่งจะต้องตรงกันกับที่กำหนดไว้ใน settings/database.php ซึ่งถ้าไม่กำหนดไว้จะมีการใช้ค่าเริ่มต้นของโมเดล ซึ่งก็คือ mysql นั่นเอง ซึ่งจะสัมพันธ์กับส่วนนี้
/* settings/database.php */
return array(
  'mysql' => array(
    'dbdriver' => 'mysql',
    'username' => 'plus',
    'password' => '1234',
    'dbname' => 'gcms_plus'
  ),

เมื่อสร้างคลาสโมเดลแล้ว สามารถเรียกใช้ได้ 2 วิธี
$model = new \Index\Index\Model;

หรือ
$model = \Index\Index\Model::create()

ซึ่งเมื่อมีการเรียกใช้โมเดลแล้ว จะมีการเชื่อมต่อกับฐานข้อมูลตามที่กำหนดไว้ในทันที

เมธอดของโมเดล
$model->db();

เมธอดนี้ใช้อ่านค่าการเชื่อมต่อฐานข้อมูลตามที่กำหนดไว้ โดยจะคืนค่าเป็น Object ของไดรเวอร์ที่ใช้ในการเชื่อมต่อฐานข้อมูลของคชสาร เช่น  Kotchasan\Database\PdoMysqlDriver
// อ่านชื่อตารางที่กำหนดไว้
$model->getTableName('world')

เมธอดนี้จะคืนค่าชื่อตารางตามที่กำหนดไว้ใน settings/database.php หัวข้อ tables โดยที่เมธอดนี้จะคืนค่าชื่อตารางรวม prefix ถ้ามีการกำหนดไว้ และหากไม่มีการกำหนดชื่อตารางไว้ จะใช้ค่าที่ส่งเข้าไปเป็นชื่อตารางโดยปริยาย เช่น
  • หากมีการกำหนดค่า prefix = gcms และชื่อตาราง world = worlds ฟังก์ชั่นจะคืนค่าชื่อตาราง world ว่า gcms_worlds
  • หากไม่มีการกำหนดค่า prefix ไว้ จะได้ชื่อตาราง world ว่า worlds
  • และหากไม่ได้มีการกำหนดค่าชื่อตารางไว้ (ที่ tables) เมื่ออ่านชื่อตาราง world จะได้ชื่อตาราง world
  • และหากไม่มีก่ารกำหนดชื่อตารางแต่มีการกำหนด prefix ไว้ จะได้ชื่อตาราง world ว่า prefix_world
// อ่านชื่อตารางที่กำหนดไว้ รวมชื่อฐานข้อมูล
$model->getFullTableName('world')

เมธอดนี้จะคืนค่าชื่อตารางเหมือนกับเมธอด getTableName แต่จะมีการเติม "ชื่อฐานข้อมูล" และครอบชื่อตารางด้วย  ``  ซึ่งปกติแล้วเมธอดนี้จะใช้ร่วมกันกับการใช้งาน CRUD ตัวอย่าง
$sql = "SELECT * FROM ".$model->getFullTableName('world');
echo $sql;

ผลลัพท์
SELECT * FROM `gcms_plus`.`prefix_world`

สุดท้าย เมธอด getSetting ใช้สำหรับอ่านค่ากำหนดของฐานข้อมูล ตามที่เรากำหนดไว้
$model->getSetting($name)

เช่น
echo $model->getSetting('dbmame')

ผลลัพท์
gcms_plus