将所有模型移动到Models文件夹,现在不能使用attach()

时间:2016-10-08 18:02:49

标签: laravel

我决定将所有模型都包含在User to Models文件夹中,除了一件事之外,一切都有效。我有这个特点

trait Favoritable{
    public function favorites()
    {
        return $this->belongsToMany(Album::class, 'favorites')->withTimestamps();
    }

public function favorite(Album $album)
{
    if(! $this->checkIfFavorited($album)){
        return $this->favorites()->attach($album);
    }
}
public function checkIfFavorited(Album $album)
{
    return $this->favorites()->where('album_id', $album->id)->exists();
}

我在我的User模型类中使用。由于我将所有模型移动到新文件夹,我不再喜欢一​​个专辑了。这是我收到的错误消息

  

调用未定义的方法Illuminate \ Database \ Query \ Builder :: attach()

我已使用

更新了config / auth.php
'providers' => [
    'users' => [
        'driver' => 'eloquent',
        'model' => App\Models\User::class,
    ],

并将每个模型中的空间命名为App \ Models;还有在composer.json里面。

"autoload": {
    "classmap": [
        "database",
        "app/Models"
    ],

并且做了composer dump-autoload。为什么我的attach()方法出错?我忘了什么吗?

1 个答案:

答案 0 :(得分:0)

想发表评论但是: 很抱歉,这是一个答案,但在我有50个代表之前无法发表评论:

你能提供用户类吗?包括其他类/特征的使用。