调用相关的雄辩模型
问题描述:
我无法找出如何通过父类调用类的功能,在这种情况下File->saveFile()
的一类方法Article
调用相关的雄辩模型
class Article extends Model {
public $table = 'pl_gen_article';
public function background_image() {
return $this->morphOne('App\Ubercms\File', 'fileable');
}
}
class File extends Model {
public $table = 'ubercms_file';
public function saveFile (UploadedFile $file) {}
}
$articleId = \Route::input('id');
$article = Article::findOrFail($articleId);
$file = $request->file('image');
// ----------------------
// Attempts
// 1.
$article->background_image->saveFile($file)
// 2.
$image = new $article->background_image();
$image->saveFile($file);
如何创建一个File
模型实例来自Article
模型?
答
通过Laravel API文档追查$article->background_image()
响应其为MorphOne例如,在那里我可以叫firstOrNew
它返回一个File
实例,我能够事后打电话saveFile
。
$model = $article->background_image()->firstOrNew([]);
$model->saveFile($file);