查询的根类(别名b)必须至少选择一个字段
在这里的小型学校酒店预订项目中是相关模式的一部分
RoomType:
actAs: [Timestampable]
tableName: room_type
columns:
name: string(100)
number_of_bed: integer
Room:
tableName: room
columns:
id:
type: string(36)
primary: true
room_number: integer
price: decimal
relations:
RoomType:
class: RoomType
local: type_id
foreign: id
RoomBooking:
tableName: roombooking
actAs: [Timestampable]
columns:
id:
type: string(36)
primary: true
room_id: string(36)
checkin_date: date
checkout_date: date
is_cancelled: boolean
relations:
Room:
class: Room
local: room_id
foreign: id
为了简单和短信,我绊倒了某个领域。所以基本上我想查询总数,某个月每天预订的房间类型。我想简单的事情,所以现在我假设预订是只是24小时所以现在我只是看看登记日期。这是查询
$q = Doctrine_Query::create ()
->select("SUM(COUNT(b.id)), b.checkin_date as DATE, t.name")
->from ("Hotel_Model_RoomBooking b" )
->leftJoin("b.Room r")
->leftJoin("r.RoomType t")
->where ("b.checkin_date > ? AND b.checkin_date < ?", array ($first, $last))
->groupBy("b.checkin_date, t.name");
$result = $q->fetchArray ();
b.checkin_date
是根类中的一个字段,所以我选择了这个b.id
,到目前为止我无法弄清楚。你怎么想?我在这做错了什么?感谢您的阅读并提前感谢您的帮助
答案 0 :(得分:1)
我是Doctrine的新手,我遇到了同样的问题。删除别名使其工作。
答案 1 :(得分:0)
因为根元素中的所有字段都有别名 - 这是一个错误(它在Doctrine的Jira中报道但我无法找到它)。
->select("SUM(COUNT(b.id)), b.checkin_date as DATE, t.name")
正如您可以看到,b.id和b.checkin_date都有别名: b.id将是sum,checkin_date是DATE :) 您问题最简单的方法是:
->select("SUM(COUNT(b.id)), b.checkin_date as DATE, b.checkin_date, t.name")
答案 2 :(得分:0)
你需要在你的数据库上拥有所有的primary_key这是你的选择。 例如:
$dps_is_store_closed = get_user_meta($user_id, '_dps_is_store_closed', true);
$daysweek2 = array(
'0' => 'Monday',
'1' => 'Tuesday',
'2' => 'Wednesday',
'3' => 'Thursday',
'4' => 'Friday',
'5' => 'Saturday',
'6' => 'Sunday',
);
<table border="0">
<tr>
<th>Closed for the Day</th>
</tr>
<tr>
foreach($daysweek2 as $key => $value){
<td>
<input type="checkbox" id="dps_is_store_closed[<?php $key?>]" name="dps_is_store_closed[<?php $key?>]" <?php checked( $dps_is_store_closed[$key], 'on' ); ?> value="">
</td>
}
</tr>