Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/laravel/11.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在同一模型中的另一个静态方法中调用静态方法laravel_Php_Laravel_Oop_Laravel 5 - Fatal编程技术网

Php 如何在同一模型中的另一个静态方法中调用静态方法laravel

Php 如何在同一模型中的另一个静态方法中调用静态方法laravel,php,laravel,oop,laravel-5,Php,Laravel,Oop,Laravel 5,我创建了一个静态方法来帮助我了解用户上传的移动操作系统应用程序 public static function knowAppPlatform($file){ $extension= $file->getClientOriginalExtension(); if ($extension=== "apk"){ return 'android'; } elseif ($extension=== "appx"){ return

我创建了一个静态方法来帮助我了解用户上传的移动操作系统应用程序

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);

调用静态方法的正确方法是使用self关键字
self::knowAppPlatform($file)显然,我传递了错误的文件类型作为参数,我传递了“png”图像类型,而不是移动应用程序

我使用了
modelName::methodName
,而且它很有效,上面的方法也很有效

self::knowAppPlatform($file);
static::knowAppPlatform($file);
App::knowAppPlatform($file);

$extension
不是
apk
appx
ipa
中的任何一个时,
knowAppPlatform
可以返回
null
。你确定这是本案中的一件吗?使用调试器并逐行执行可能会有所帮助,或者(技术含量较低)打印出
$file
$extension
是什么;这是一个APK文件,所以它应该返回真的,我在模型外测试了它,它工作得很好@tremby@RaghbendraNayakSystematix已经试过了,但是没有show@Akunne,为什么一切都会变成现实?让它
var_dump
说出
$file
$extension
是什么,并让我们知道。谢谢M'Baku,这是在PHP8和Laravel8上工作的。