Trying to get property of non-object_thinkphp路由报错

Posted 云里有棵树

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Trying to get property of non-object_thinkphp路由报错相关的知识,希望对你有一定的参考价值。

在阅读《thinkphp5.0快速入门》这本书时,模型基础这一节碰到一点路由上的问题。在此随笔记一下。

碰到的问题:

[8] ErrorException in UserController.php line 43

Trying to get property of non-object

Controller.php

public function read($id=\'\'){
    $user = Usermodel::get($id);
    echo "-----------function read() running...-----------<br/>";
    echo "id : ".$id."<br/>";
    echo $user->nickname.\'<br/>\';
    echo $user->email.\'<br/>\';
    echo date(\'Y/m/d\', $user->birthday).\'<br/>\';
}
public function read2($id=\'\'){
    $user = Usermodel::get($id);
    echo "-----------function read2() running...-----------<br/>";
    echo "id : ".$id."<br/>";
    echo $user[\'nickname\']."<br/>";
    echo $user[\'email\']."<br/>";
    echo date(\'Y/m/d\', $user[\'birthday\'])."<br/>";
}

 

碰到这个问题,是因为在路由中添加了与教程不一样的路由规则。教程中定义了一条规则:

\'user/:id\'        => \'index/user/read\',

这样在浏览器输入http://www.mjtest.com/user/3, 就能访问到read方法。

我在read方法后面又新增了一个read2方法,为了访问到这个方法,在路由规则后面新增了一条:

\'user/read2/:id\'    => \'index/user/read2\'

也就是说,现在的路由规则最后两行是

\'user/:id\'        => \'index/user/read\',
\'user/read2/:id\'    => \'index/user/read2\',

这样在浏览器输入http://www.mjtest.com/user/read2/3,并没有按预期去访问read2方法,实际上这个url在顺序读取路由规则时,

先读取到\'user/:id\'        => \'index/user/read\'这条规则,就认为url是符合这条规则的。就把read2,3当成两个参数传递给了read方法

浏览器输入结果如图

从图中结果可以知道,服务器实际上访问到了read方法里。

将路由修改如下:

route.php
\'user/read2/:id\'    => \'index/user/read2\',
\'user/:id\'        => \'index/user/read\',

访问url:http://www.mjtest.com/user/read2/3

访问结果:

-----------function read2() running...-----------
id : 3
流年
liunian@qq.com
1977/03/05

这样就正确访问到read2方法了。

以上是关于Trying to get property of non-object_thinkphp路由报错的主要内容,如果未能解决你的问题,请参考以下文章

Trying to get property of non-object_thinkphp路由报错

记录一个七牛云 Trying to get property of non-objectgetUpHost问题

TP5.0 报错Trying to get property 'obj' of non-object解决办法

php json解析 出现问题 Notice: Trying to get property of non-object in。。。

ErrorException Trying to get property of non-object 我只是想进入我的编辑页面,这个错误不会让我

git - Trying to create a local repo of go.tools that is go get-able - Stack Overflow