我创建了一个静态方法来帮助我了解用户上传的移动操作系统应用。
public static function knowAppPlatform($file){
$extension= $file->getClientOriginalExtension();
if ($extension=== "apk"){
return 'android';
}
elseif ($extension=== "appx"){
return 'windows';
}
elseif ($extension=== "ipa"){
return 'ios';
}
}
然后我试图在同一个模型中的另一个方法中调用相同的静态方法。但它一直返回null,它在模型外部工作正常但不在内部。
public static function uploadScreenshot($file){
$platform = static::knowAppPlatform($file);
dd($platform);
$name = Auth::id() . 'screenshots' . time(). '.' . $file->getClientOriginalExtension();
$name = $file->storeAs('mobileApps/screenshots', $name);
return $name;
}
我在这里研究了堆栈溢出并实现了一些答案,但没有显示。
我试过了,
$platform = static::knowAppPlatform($file);
$platform = self::knowAppPlatform($file);
$platform = \App\model\students\App::knowAppPlatform($file);
答案 0 :(得分:0)
调用静态方法的正确方法是使用self关键字 self::knowAppPlatform($file);
,但是你说它返回null。我建议你尝试一个调试器来解决这个问题。
答案 1 :(得分:0)
显然我传递了错误的文件类型作为参数,我传入了'png'图像类型而不是移动应用程序。
我使用了modelName::methodName
并使用了,上面也有效......
self::knowAppPlatform($file);
static::knowAppPlatform($file);
App::knowAppPlatform($file);