问题描述
基本上,我要做的就是检查传递给该方法的对象是否是模型。不管模型是什么,我只想确保它是一个模型。因此,我尝试使用Model $resource
强制转换$ resource变量/参数,但这返回了错误。
传递给App \ Http \ Controllers \ Handlers \ FileUploadHandler :: replaceFile()的参数1必须是App \ Http \ Controllers \ Handlers \ Model的实例,App \ Models \ Resource \ Ingredient的实例,在E中调用:第109行的\ Sites \ kara \ app \ Http \ Controllers \ Resources \ IngredientsController.PHP
这是我的方法:
// Handle File Replacement
public static function replaceFile( $resource,Request $request,$storageFolder = 'nopath',$formName = 'fileUpload') {
// Delete the old file
Storage::delete($resource->fullPath);
// Place the new file
return self::uploadFile($request,$storageFolder,$formName);
}
这是我的称呼方式:
// Create the object
$ingredient = Ingredient::where('id',$id)->first();
$file = FileUploadHandler::replaceFile($ingredient,$request,'ingredients');
解决方法
要检查某个变量是否指向Model
,可以使用instanceof
。
示例:
<?php
class A{};
class B extends A{};
$obj = new B();
if ($obj instanceof A) {
echo 'yes';
}
输出:yes
想通了:
您必须在use语句中添加Illuminate\Database\Eloquent\Model
类。
因此,当您致电Model $resource
时,它将返回OK。