Laravel5 - 不应静态调用非静态方法

时间:2015-11-26 13:52:08

标签: php laravel-5

我不知道这个错误是什么。请有人给我一些解释

$ npm install grunt-contrib-watch --save-dev

UserController.php

以及我的模型class UserController extends Controller { public function viewCard($card_id) { return Tag::test($card_id); } }

Tag.php

我不知道失败的地方,我做错了......

感谢....

1 个答案:

答案 0 :(得分:1)

public function test()不是静态方法。当您尝试使用Tag::test()访问静态方法时,它将失败,因为..这个方法不是静态的。

您有两种选择:

1)将您的方法设置为静态

class Tag extends Model {
    public static function test($card_id){
        return DB::SELECT(DB::RAW("SELECT name FROM tagmap tm, tags t WHERE t.id = tm.tag_id AND tm.card_id = :card_id"), ['card_id'=>$card_id]);
    }
}

2)首先实例化你的类,将其作为实例方法调用:

$tag = new Tag();
$tag->test($card_id);