不能在laravel控制器类中调用类方法

时间:2016-06-08 23:48:09

标签: php class laravel oop controller

假设我有这段代码:

class UserController extends Controller
{
    protected $test;

    public function __construct()
    {
        $this->test = new Test();

    }

    // first call this func
    public function add_name()
    {
        $this->test->add_name('name1')
        return $this->test->get_name();
    }

    // then this one
    public function show_name()
    {
        return $this->test->get_name();
    }

}

class Test
{
    protected  $name;

    public function get_name()
    {
        return $this->name;
    }

    public function add_name($name)
    {
        $this->name = $name;
    }
}

因此,当我在UserController(第一类)中的add_name()之后调用show_name()函数时,不返回任何内容。我的代码问题是什么? (当调用add_name()函数时,它可以正常工作)

1 个答案:

答案 0 :(得分:0)

在Laravel中,在Controller文件中编写单独的类是不好的做法。您必须在app / Classes目录中创建单独的类文件。比如说你的班级,app / class里面的Class_Test.php。在您的Controller文件中,您需要包含类的命名空间。您的控制器功能应该是。

使用App \ Classes \ Class_Test;

类UserController扩展Controller {

public function add_name()
{
   //call the class function
    Class_Test::add_name('name1');
}

// then this one
public function show_name()
{
    Class_Test::get_name();
}

}

希望这能帮到你。