我有以下表格:
tbl_users
===============
uid
username
password
gid
tbl_groups
===============
gid
name
type
我试图弄清楚如何在 f3 中使用 sqlmapper 来查询用户名等于 $_POST["username"] 的两个表,并能够获取组名和类型。是否可以使用这个框架和 sqlmapper 来加入类似的查询?
我一直在四处寻找,找不到任何例子。
我有以下表格:
tbl_users
===============
uid
username
password
gid
tbl_groups
===============
gid
name
type
我试图弄清楚如何在 f3 中使用 sqlmapper 来查询用户名等于 $_POST["username"] 的两个表,并能够获取组名和类型。是否可以使用这个框架和 sqlmapper 来加入类似的查询?
我一直在四处寻找,找不到任何例子。
您可以尝试为此设置一些虚拟字段:
$mapper->group_name = 'select name from tbl_groups where tbl_groups.gid=tbl_users.gid';
$mapper->group_type = 'select type from tbl_groups where tbl_groups.gid=tbl_users.gid';
$mapper->load(array('uid = ?',123));
echo $mapper->group_name;
我在这里使用 View 使用 SQL Mapper 实现了分页view_user_list_with_referral
$dropInstantWinnerView = $this->db->exec("DROP VIEW IF EXISTS view_user_list_with_referral;");
$createInstantWinnerView = $this->db->exec("CREATE VIEW view_user_list_with_referral AS SELECT u.fb_id, fb_link, name, r.referred_by, u.created FROM users u LEFT OUTER JOIN referral r ON u.fb_id=r.joinee ");
$user = new \DB\SQL\Mapper($this->db,'view_user_list_with_referral');
$limit = 20;
$page = Pagination::findCurrentPage();
$order_condition = F3::get("PARAMS.order_condition");
$order_class= "";
if(!empty($order_condition)){
$cond = explode(":", $order_condition);
$option = array('order' => $cond[0].' '.$cond[1]);
if($cond[1]=='ASC'){
$order_condition = $cond[0].':DESC';
$order_class = ":DESC";
}else{
$order_condition = $cond[0].':ASC';
$order_class = ":ASC";
}
}else{
$option = array('order' => 'created DESC');
}
$subset = $user->paginate($page-1, $limit, null, $option);
$pages = new Pagination($subset['total'], $limit);
$pages->setTemplate("admin/pagebrowser.html");
F3::set('pagebrowser', $pages->serve());
//echo "<pre>";print_r($subset);exit;
F3::set('page', $page);
F3::set('order_condition', $order_condition);
F3::set('total_found_records', $user->count());
我希望它会节省别人的时间:)