如何在php 5.5 yii框架中解决非静态方法

fmj*_*fmj 4 php yii

这是大型应用程序,可以在网上正常运行,我正在尝试使用下载所有文件并在本地计算机上对其进行配置,我成功下载并进行了配置,但是我坚持了这一点,这里的错误是 Non-static method Video::getVideoDetails() should not be called statically, assuming $this from incompatible context

随着对#1的问题,我得到一些线索,以除去E_Stricterror_reporting 我使用E_ALL。但是错误仍然存​​在

这是代码的一部分

foreach($modelvideo as $bannerVideo):
         $videoTitle=Video::getVideoDetails($bannerVideo->id);
         $videoDirector=Video::getDirector($bannerVideo->user_id);
         ?>
             <div class = 'item'> 
Run Code Online (Sandbox Code Playgroud)

我不是php开发人员,如果您能轻松找到解决此问题的方法,我将不胜感激。

谢谢

Man*_*uer 5

只需更改这些行

foreach($modelvideo as $bannerVideo):
         $videoTitle=Video::getVideoDetails($bannerVideo->id);
         $videoDirector=Video::getDirector($bannerVideo->user_id);
         ?>
             <div class = 'item'> 
Run Code Online (Sandbox Code Playgroud)

foreach($modelvideo as $bannerVideo):
        $video = new Video();
         $videoTitle=$video->getVideoDetails($bannerVideo->id);
         $videoDirector=$video->getDirector($bannerVideo->user_id);
         ?>
             <div class = 'item'> 
Run Code Online (Sandbox Code Playgroud)

getVideoDetailsgetVideoDetails是静态函数$bannerVideo->id$banner->user_id分别和分别依赖。或者,您可以通过更改将它们声明为静态函数

public  function getVideoDetails
Run Code Online (Sandbox Code Playgroud)

 public static function getVideoDetails
Run Code Online (Sandbox Code Playgroud)

在模型函数中,但这会影响调用函数的其他地方,因此除非您知道自己在做什么,否则不要更改模型。