我的模型中有以下功能。我有一个名为item_like的表。在该表中,我有两列 - saturn_1和like_id。当saturn_1等于'id'=>的值时,我想获得like_id的总数我的数组中的$ item-> id。我对编码很陌生,无法弄清楚出了什么问题。
Tx求助。
public static function formatCallbackChallenge($item, $template = 'challenges') {
static $extensions = null;
if($extensions === null) {
$extensions = Extensions_Model_Front::getByMethod('item_list');
}
$item_title = (strlen($item->title) > 25) ? substr($item->title, 0, 25) . '...' : $item->title;
$db = JO_Db::getDefaultAdapter();
$total_likes = new JO_Db_Expr('(SELECT COUNT(like_id) FROM item_like WHERE item = $item->id LIMIT 1)');
$data = array(
'template' => $template,
'sql_row' => isset($item->sql_row) ? $item->sql_row : null,,
'id' => $item->id,
'title' => $item_title,
'total_likes' => $total_likes,
);
if($extensions) {
$front = JO_Front::getInstance();
foreach($extensions AS $id => $ext) {
$data_ext = call_user_func(array($front->formatModuleName($ext . '_model_item'), 'listing'), $data, $item);
if($data_ext && is_array($data_ext)) {
$data = array_merge($data, $data_ext);
}
}
}
return $data;
}
答案 0 :(得分:0)
我不知道您正在使用哪个数据库库,我假设查询运行但返回错误的数据...基于您正在寻找的内容我看到了两个错误...
将方法内的第9行重写为:
$total_likes = new JO_Db_Expr("SELECT COUNT(like_id) FROM item_like WHERE item = {$item->id}");