php查看详情完整代码,php项目实战:代码讲解之消息详情显示

本节我们介绍的是如何将一条App的信息内容完整的显示出来,不带有超链接,将其关联的用户一并显示出来。

接口设计:通过查找获取某个用户的某条ID,然后将ID里面的所有字段内容显示出来,如果关联到其他的ID或者用户,则提供相应的跳转链接。

5de81f7c593a728fdf4fb29dc6deacef.pngphp项目实战

public function actionDetail()//显示某条主题的详情

{

$id = \Yii::$app->request->get('id');//通过get(显式)方式获取数据id

$fields = ['id','content', 'title', 'cover_pic','user_id', 'like_count', 'read_count', 'is_delete',

'created_at', 'advertiser_id'];//定义fields,用于存储topic数据库中的字段

$query = Topic::find()->select($fields)->where(['id' => $id]);//查询topic中的相应id(get到的id)

$count = $query->count();//对查询到的数据进行统计

$pagination = new Pagination(['totalCount' => $count]);//根据统计结果进行分页

$query->orderBy('created_at desc');//对查询结果以创建时间(create_at)进行降序排序

$data = $query->offset($pagination->offset)->limit($pagination->limit)->asArray()->one();//将查询到的数据以分页的方式保存到$data中

$data["content"] = !empty($data["content"])?json_decode($data["content"],true) : [];//如果$data["content"]的值不为空,则返回使用json解码后的$data["content"],如果为空返回【】

$resArray = [];//定义空数组变量$resArray

foreach ($data["content"] as $key => $value) {

$value["target_info"] = null;

if (isset($value["target_type"]) && isset($value["target_id"])) {

$type = $value["target_type"];

$id = $value["target_id"];

if ($type == 1) { //演员

$actor = Actor::find()->where(["id" => $id])->asArray()->one();

$value["target_info"] = $actor;

} else if ($type == 2) { //通告

$demand = DemandInfo::find()->where(["id" => $id])->asArray()->one();

$value["target_info"] = $demand;

} else if ($type == 3){ //广告主

$ad = Advertiser::find()->where(["id" => $id])->asArray()->one();

$value["target_info"] = $ad;

}

}//如果获取的user_id值为空,同时字段advertiser_id也为空的情况下,则在Topic数据库中查询is_delete=0(没有删除)的数据。

//如果user_id值为空,并且advertiser_id不为空,那么就在topic数据库中查询到is_delete=0,字段'advertiser_id' = $advertiser_id的数据

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值