需要明确的一点,sql语句或者yii自带的find和findall方法这些操作,都需要放在model层,在对应的model里面创建一个方法。写上这些sql语句,有三个例子:
1.这个方法是通过截止日期来获取城市的信息。
/**
*根据截止日期来获取城市信息
*@paramarray$deadline_day社保截止日期
*@returnarray
*@authorxcz
*/
publicfunctiongetCityDataByDeadline($deadline_day){
$sql="SELECTarea_id,city_nameFrom{{city_data}}wheredeadline_day=".$deadline_day;
$command = Yii::app()->db->createCommand($sql);
$city_data = $command->queryAll();
return $city_data;
}
2.还有在model层使用多表查询的sql语句的写法,使用join的方式来进行多表的连接
Public function getCompanyInfo($c_id){
$sql="SELECTc.c_name,c.main_user,ci.mailascompany_mail,ci.phoneascompany_phone,a.uid,a.user_id,a.phoneasmain_user_phone,a.mailasmain_user_mailFrom{{company}}cjoin{{company_info}}cijoin{{admin}}awherec.c_id=ci.c_idandc.c_id=a.c_idandc.c_id=".$c_id;
$command=Yii::app()->db->createCommand($sql);
$company_data=$command->queryAll();
return $company_data;
}
3.因为我们有两个数据库,一个是shopnctest数据库,一个是joyotest数据库,然后如果我想调用数据库shopnctest里面的member表的信息,只有通过model层里的member模型里的找主键的方法。然后根据member_id来查找对应member_id的数据。
Public function getMemberById($id){
return ShopncMemberModel::model()->findByPk($id,‘member_state=1‘);
}
然后再公共service层,采用如下的的方式对model层的方法进行调用。
$city_data=CityDataModel::model()->getCityDataByDeadline($d);
调用的数据需要通过isset的判断。
如果通过第三种方法调用到的数据的话,可以用两种方式进行调用。
获取的数据是一个对象的类型,所以$member_data->member_mobile这种方式就能对对象的数据进行调用。
另一个是
对于社保截止日接口的学习记录---在yii1.1中公共service层对model层的调用
原文地址:http://blog.csdn.net/rodgexue/article/details/45719661