将 class 注入控制器 - 未定义的变量

Injecting class into controller - undefined variable

我正在尝试在我的控制器中使用自定义 class。过去我使用过存储库和接口,所以我不确定在不使用这些时我在这里做的是否正确。

在我的应用程序目录中,我有一个 classes 文件夹。

我在那里创建了一个名为 "ContactCentreSlideshow" 的新文件夹,然后创建了一个名为 "Slideshow.php"

的 class

这个slideshow.php就是:

namespace Classes\ContactCentreSlideshow;

class Slideshow {

  public function get_slideshow_interval()
  {
    return Constants::where('name', '=', 'slideshow_interval');
  }

}

我的控制器是:

use Classes\ContactCentreSlideshow\Slideshow as Slideshow;

class ContactCentreSlideshowController extends BaseController {

protected $slideshow;

  public function __construct(Slideshow $slideshow)
  {
    $this->slideshow = $slideshow;
  }

  public function get_slideshow_interval()
  {
    return $slideshow->get_slideshow_interval();
  }

} 

然而,当我直接从路由调用控制器中的 get_slideshow_interval 方法时收到此错误。:

{"error":{"type":"ErrorException","message":"Undefined variable: slideshow","file":"\/Applications\/MAMP\/htdocs\/project\/app\/controllers\/ContactCentreSlideshowController.php","line":24}}

引用成员变量时(即本例中的$slideshow),需要在其前面加上$this->前缀。

get_slideshow_interval 应该是:

public function get_slideshow_interval()
{
    return $this->slideshow->get_slideshow_interval();
}