Laravel: Eloquent / Tinker类未找到。

6

我将尝试帮助你翻译与Tinker有关的数据的内容。当运行代码时,出现了"Class 'App\Date' not found"的错误。我认为这是因为我没有使用正确的代码,但我不知道需要哪些代码。

我有两个模型:

Contact (app\Models\Contact.php)
Date (app\Models\Date.php)

Contact

public function dates(){
   return $this->hasMany(Date::class);
}

Tinker

php artisan tinker

$test = App\Models\Contact::find(516);

$test返回一个用户。
如果我在此之后使用$test->dates,那么会出现错误,内容如下:

[Symfony\Component\Debug\Exception\FatalErrorException]Class 'App\Date' not found

请展示您的联系人模型,尤其是关系部分。 - EddyTheDove
关系部分已经展示过了,这是公共函数dates()。 - Koen van de Sande
1
使用 return $this->hasMany(App\Models\Date, 'contact_id'); - Quynh Nguyen
1
尝试在您的关系中使用完整的命名空间。App\Models\Date::class - aynber
2个回答

5

请确保你在 Date.php 文件中使用正确的命名空间,应该是 namespace App\Models; 而不是 namespace App;


我在 Date.php 中使用 App\Models; 作为命名空间,但仍然无法工作。 - Koen van de Sande
2
@KoenvandeSande,请确保在Contact类中使用正确的命名空间,并尝试运行composer dumpauto命令。 - Alexey Mezenin

2

$test->dates 很可能是一个关联关系。在该关系中,它无法找到关系中使用的类。

public function dates(){
   return $this->hasMany('App\Models\Date');
}

我认为我需要说明Date类在app\Models\中的关系,这是否可能? - Koen van de Sande
你使用的是哪个版本的Laravel?如果模型在同一个命名空间中,你的代码应该可以正常工作。 - EddyTheDove
我正在使用Laravel 5。 - Koen van de Sande
1
我重新启动了PhpStorm和我的SSD,现在使用您的代码可以工作了。我想这可能与旧代码有关。谢谢! - Koen van de Sande

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接