首页 > 解决方案 > 修补 laravel 8,无法获得关系

问题描述

我刚刚创建了用户*故事表和模型,定义关系如下所示

在用户模型中

public function stories()
    {
        return $this->hasMany(\App\Story::class);
}

故事模型

public function user()
    {
        return $this->belongsTo(App\User::class);
    }

在修补

$user1=App\Models\User::find(1)
=> App\Models\User {#3356
     id: 1,
     name: "user1",
     email: "user1@localhost.com",
     email_verified_at: null,
     created_at: "2020-12-25 19:48:58",
     updated_at: "2020-12-25 19:48:58",

但是当我试图让所有故事都属于用户 1

$user1->stories

PHP 错误:第 745 行的 C:\xampp\laravel\storify\vendor\laravel\framework\src\Illuminate\Database\Eloquent\Concerns\HasRelationships.php 中找不到类“App\Story”

标签: phpnamespacesrelationshiplaravel-8tinker

解决方案


看起来您使用了错误的名称空间。模型文件可能位于\App\Models命名空间(app\Models目录)中,因此关系应如下所示:

在用户模型中

public function stories()
{
    return $this->hasMany(\App\Models\Story::class);
}

故事模型

public function user()
{
   return $this->belongsTo(\App\Models\User::class);
}

推荐阅读