首页 > 解决方案 > 如何在 laravel 8 中使用附加方法?

问题描述

我将一些文件附加到 laravel 8 中的一个类别,但它不起作用,错误是:

BadMethodCallException 方法 Illuminate\Database\Eloquent\Collection::attach 不存在。

我已经尝试过如下。

控制器:-

public function updateSyncFiles(Request $request, $package_id) {
    $package_item = Package::find($package_id);
    $files = $request->input('files');

    if($package_item && is_array($files) && count($files)>0) {
        $package_item->files->attach($files);
    }
}

模型:-

public function  files() {
    return $this->belongsToMany(File::class, 'package_file','package_id', 'file_id');
}

标签: laravellaravel-8

解决方案


更改$package_item->files->attach($files);$package_item->files()->attach($files);。当您键入不带括号的文件时,它不会返回该类的实例。


推荐阅读