下記phpソースコードは、架空のWebシステムのログインユーザ登録+編集スクリプトを簡易化したもの。
よくモデルや拡張の使い方を知らんで結局ネイティブコーディングしている人がいますが、設計段階で準備していればこんなカンタンに済むんだよ的なイヤミソースです。
<?php
class User extends Ex_Controller
{
function __construct()
{
parent::__construct();
$db = $this->StdDatabase();
$user_data = $this->session;
$post_data = $this->input->post();
$err = (object) array();
}
// Method
public function __remap($method="index")
{
// Run validation
$err->input = $this->Validator->user($post_data);
// Validation error
if (empty($err->input)===FALSE)
{
$this->view->error("Validation error.", $err->input,false);
}
// User actions
switch ($method)
{
// regist user
case "register":
{
if ($user_data->level > 2)
{
$col = $db->user->getColumn();
foreach ($col as $key=>$val)
{
$col->$key = $post_data->register->$key;
}
$set = $db->user->Regist($col,$err->regist);
if (empty($err->regist)===FALSE)
{
$this->view->error("Database error.", $err->regist, false);
}
else
{
$this->view->user("regist", 1, true);
}
}
else
{
$this->view->error("Permission error.", "You do not have a permission of regist user.", false);
}
break;
}
// edit + delete user
case "edit":
{
if ($user_data->level > 3)
{
$col = $db->user->getColumn();
foreach ($col as $key=>$val)
{
$col->$key = $post_data->edit->$key;
}
$set = $db->user->Edit($col,$err->edit);
if (empty($err->edit)===FALSE)
{
$this->view->error("Database error.", $err->edit,false);
}
else
{
$this->view->user("edit",$col->act, true);
}
}
else
{
$this->view->error("Permission error.", "You do not have a permission of edit user.", false);
}
break;
}
// Default (return index)
default:
{
$this->view->user("index", 1, true);
}
}
}
}



コメント