错误:laravel中的未定义函数,即使函数在控制器

时间:2017-02-26 14:46:56

标签: php laravel laravel-5

我的laravel控制器中有以下几行代码:

public function getTags() {
    $tags = DB::table('tags')->get();
    /* convert Object to array */
    $tagsArray = array();
    foreach($tags as $tag) {
        $tagsArray[$tag->tag] = $tag->tag; 
    }
    return $tagsArray = json_decode(json_encode($tagsArray) , TRUE);
}

public function index() {
    // $recentBlogPost = DB::table('Admin')->get();
    // Auth::logout();
    if (!(Auth::check())) {
        return Redirect::to('login');
    }       

    $tagsArray = getTags();
    return view('admin.index')->with('tags' , $tagsArray);
}

现在我的代码的下一行出错:

$tagsArray = getTags();

我收到以下错误:

Call to undefined function App\Http\Controllers\getTags()

现在我在调用此函数的同一个控制器中定义了此函数,那么为什么我会收到未定义函数的错误?

2 个答案:

答案 0 :(得分:2)

正确的语法是:

$tagsArray = $this->getTags();
  

当从对象上下文中调用方法时,伪变量$ this可用。 $ this是对调用对象的引用(通常是方法所属的对象

http://php.net/manual/en/language.oop5.basic.php

答案 1 :(得分:1)

尝试了

$tagsArray = $this->getTags();