15621857753

phpcmsV9如何调用多个模型里的内容

来源:齐鲁建站 栏目:建站教程 阅读: 日期:2021-03-30

本文介绍了phpcmsV9如何调用多个模型里的内容,大多数时候,我希望在多个模型下调用最新内容,但是由于V9模型使用存储表,使用GET进行In分atid查询非常麻烦,教程给出了非常简单的方式,试试看吧。

响应式网站建设

phpcmsV9如何调用多个模型里的内容?一起跟着齐鲁建站小编学习一下吧。

第一步 phpcms\libs\functions\extention.func.php 里面添加

function news($limit="",$modelid="",$where="")
{
  $db=pc_base::load_model('content_model');
  if((strpos($modelid,",")>=0))
  {
   $modelid=explode(",",$modelid);
   $midarr=$dot='';
   foreach($modelid as $mid)
   {
    $midarr=$midarr.$dot.$mid;
    $dot=',';
   }
   $sq="`modelid` IN ({$midarr})";
  }
  else
  {
   $sq="`modelid`={$modelid}";
  }
  $db->table_name='v9_model';
  $models=$db->select($sq,"tablename");
  $sql='';
  $lianhe='';
  foreach($models as $name)
  {
   $sql=$sql.$lianhe."SELECT id,catid,title,url,inputtime FROM v9_{$name['tablename']}";
   $lianhe=' UNION ALL ';
  }
 
  $time=time();
  $sql=$sql." ".$where." order by inputtime desc limit  ".$limit;
 
  $allnews=$db->query($sql);
  while($r = $db->fetch_array($allnews))
  {
   if($keyfield)
   {
    $key = $r[$keyfield];
    $array[$key] = $r;
   }
   else
   {
    $array[] = $r;
   }
  }
  return $array[0];
}

以上代码需要注意的是里面表前缀,这里是V9,使用的时候改成你自己的表前缀,默认是V9

第二步 调用方式为 

<?php $recent=news("0,8","1,12");?>
{loop $recent $r}
<li><a href="{$r['url']}" target="_blank" title="{$r['title']}">{str_cut($r[title],54,'')}</a></li>
{/loop}

代码解释:

0,8数字是调用条数,从0开始调用8条

1,12数字模型ID,不是栏目的ID,多个模型用,分开

以上就是关于phpcms调用多个模型的所有内容,希望可以帮到大家,欢迎扫码加微信一起交流~

公众号二维码

展开