解决办法:whereor
/**
* @ApiTitle (搜索功能)
* @ApiMethod (POST)
* @ApiHeaders (name=token, type=string, required=true, description="请求的Token")
* @ApiParams (name="name", type="string", required=true, description="关键词")
* @ApiReturn ({
"code":1,
"msg":"返回成功"
data:[]
"status":1
})
*/
public function sousuo()
{
$uid = $this->auth->id;
$name = $this->request->post('name');
$time = date('Y-m-d',time());
if (empty($name)) {
$this->error('还是空空的哦', ['status' => 2]);
}
$data = db('drama_repertory r')
->join('drama_theatre t','t.id=r.t_id')
->join('drama_type t1','t1.id=r.type_id')
->join('drama_group g','g.id = r.group_id')
->field('r.images,r.name,r.t_id,r.type_id,r.group_id,r.starttime,r.endtime,r.minprice,g.name as group_name,t.name as theatre_name,t.area_id,t1.pid')
->whereOr('r.name', 'like', "%$name%")
->whereOr('t.name', 'like', "%$name%")
->whereOr('g.name', 'like', "%$name%")
->whereTime('endtime',$time)
->select();
//dump($data);
foreach ($data as $k => $v) {
$data[$k]['images'] = cdnurl($data[$k]['images'],true);
$data[$k]['starttime'] = date('Y-m-d', $data[$k]['starttime']);
$data[$k]['endtime'] = date('Y-m-d', $data[$k]['endtime']);
$data[$k]['area_id'] = \db('area')->where('id',$data[$k]['area_id'])->value('name');
$data[$k]['pid'] = db('drama_type')
->where('id', $data[$k]['pid'])
->value('name');
}
$hid = \db('user_history')->where('keywords', $name)->value('id');
if (empty($hid)) {
\db('user_history')
->insertGetId([
'uid' => $uid,
'keywords' => $name,
'createtime' => time()
]);
}
Db::startTrans();
try {
\db('user_history')
->where('id', $hid)
->update([
'createtime' => time()
]);
Db::commit();
} catch (Exception $e) {
Db::rollback();
$this->error('连接错误', ['status' => 3]);
}
$this->success('获取成功', [$data, 'status' => 1]);
}