首页 > 其他分享 >Typecho——Argument 1 passed to Typecho\Router::get() must be of the type string

Typecho——Argument 1 passed to Typecho\Router::get() must be of the type string

时间:2023-02-22 23:46:25浏览次数:73  
标签:wwwroot string get type dev vip Typecho data

前言

开发EasyBe主题的置顶功能时候,测试的时候出现了Typecho\Router::get()报错,根据对应的报错信息查看了下源码后解决了该问题;

内容

查询SQL

// 获取全部文章
function getAllPosts($page, $limit) {
    $db = Typecho_Db::get();
    $sql = $db->select('c.cid', 'c.title', 'c.created', 'c.text', 'c.password', 'c.commentsNum', 'c.views', 'c.digg', 'f.str_value as sticky')
            ->from('table.contents as c')
            ->join('table.fields as f', 'f.cid = c.cid', Typecho_Db::LEFT_JOIN)
            ->where('c.status = ? and c.type = ?', 'publish', 'post')
            ->order('sticky', Typecho_Db::SORT_DESC)
            ->order('c.created', Typecho_Db::SORT_DESC)
            ->page($page, $limit);
    return  $db->fetchAll($sql);
}

报错信息

根据报错,这里我们只需要关注#0的提示即可;

Argument 1 passed to Typecho\Router::get() must be of the type string, null given, called in /data/wwwroot/dev.wangyangyang.vip/build/var/Widget/Base/Contents.php on line 536
TypeError: Argument 1 passed to Typecho\Router::get() must be of the type string, null given, called in /data/wwwroot/dev.wangyangyang.vip/build/var/Widget/Base/Contents.php on line 536 and defined in /data/wwwroot/dev.wangyangyang.vip/build/var/Typecho/Router.php:170
Stack trace:
#0 /data/wwwroot/dev.wangyangyang.vip/build/var/Widget/Base/Contents.php(536): Typecho\Router::get(NULL)
#1 /data/wwwroot/dev.wangyangyang.vip/build/var/Widget/Base/Contents.php(478): Widget\Base\Contents->filter(Array)
#2 /data/wwwroot/dev.wangyangyang.vip/build/usr/themes/easybe/index.php(19): Widget\Base\Contents->push(Array)
#3 /data/wwwroot/dev.wangyangyang.vip/build/var/Widget/Archive.php(1415): require_once('/data/wwwroot/d...')
#4 /data/wwwroot/dev.wangyangyang.vip/build/var/Typecho/Router.php(99): Widget\Archive->render()
#5 /data/wwwroot/dev.wangyangyang.vip/build/index.php(23): Typecho\Router::dispatch()
#6 {main}

排查经过

根据报错进入到对应的文件中,使用vi进行编辑;


?> 到这里其实问题已经就解决了,因为我上面查询的SQL中,并没有将字段type筛选出来,所以这里才导致了传NULL的情况;

解决

把~c c.type c~加入查询字段即可;

// 获取全部文章
function getAllPosts($page, $limit) {
    $db = Typecho_Db::get();
    $sql = $db->select('c.cid', 'c.title', 'c.created', 'c.text', 'c.password', 'c.commentsNum', 'c.views', 'c.type', 'c.digg', 'f.str_value as sticky')
            ->from('table.contents as c')
            ->join('table.fields as f', 'f.cid = c.cid', Typecho_Db::LEFT_JOIN)
            ->where('c.status = ? and c.type = ?', 'publish', 'post')
            ->order('sticky', Typecho_Db::SORT_DESC)
            ->order('c.created', Typecho_Db::SORT_DESC)
            ->page($page, $limit);
    return  $db->fetchAll($sql);
}

标签:wwwroot,string,get,type,dev,vip,Typecho,data
From: https://www.cnblogs.com/wangyang0210/p/17146422.html

相关文章

  • shell getopts 的使用模板
    demo1#!/bin/bashfunctionusage(){echo"Usage:$0-sFUNCTION-nNAME"}whilegetopts":s:n:"opt;docase${opt}ins)func=$OPTARG......
  • Java 截取字符串 split 方法与 substring 方法简单比较
    Java截取字符串split方法与substring方法简单比较文章目录​​Java截取字符串`split`方法与`substring`方法简单比较​​​​0、结论​​​​1、截取目标​​​​......
  • [Typescript] Using Extract type until to get the value from Union type
    import{Equal,Expect}from'../helpers/type-utils';import{F}from'ts-toolbelt';interfaceFruit{name:string;price:number;}exportconstwra......
  • .NetCore自定义模板,发布Nuget
    1.创建模板项目框架             2.创建模板文件在项目文件夹根目录创建.template.config文件夹,在文件夹下创建新的文件:template.json  ......
  • const char* 与string
    string是c++标准库里面其中一个,封装了对字符串的操作,实际操作过程我们可以用constchar*给string类初始化a)string转constchar*strings=“abc”;constcha......
  • Get Post Ajax 请求
    [HttpPost]publicJsonResultPostTest(stringname){List<Student>list=GetStudents();list.Add(newStudent{Name......
  • C++面对对象:实现string类
    1//string.h2#pragmaonce3classString{4public:5String(constchar*cstr=0);6String(constString&str);7~String();89......
  • 黑马stringbuilder
    StringBuilder作用:提高string的操作效率ctrl+alt+m可以快速的抽取方法使用的stringbuilder所花的时间连一秒都花不了packagecom.itheima.api.stringbuilder;publ......
  • C#的string是一种糟糕的设计吗?
    前言    最近有人在某平台提问“C#的string是一种糟糕的设计吗?”,他认为官方为字符串做了很多内部优化处理,这种处理增加了理解成本,为什么不能提供char[]指针处理方案呢......
  • JSON.toJSONString(object, SerializerFeature.WriteMapNullValue);第二个参数作用
      这里箭头指向的位置,因为sent-1中的value为空,所以并未打印出来。第二个使用:JSON.toJSONString(map,SerializerFeature.WriteMapNullValue)指定序列化方式就打印出......