gpt4 book ai didi

php - 方法 'loadFactoriesFrom' 已弃用

转载 作者:行者123 更新时间:2023-12-05 04:51:36 25 4
gpt4 key购买 nike

我最近升级到 Laravel 8 但现在我收到警告

Method 'loadFactoriesFrom' is deprecated

我的文件结构如下

myapp/
├── packages/
│ ├── package-1/
| | |── src/
| | | |── databases/
| | | | |── factories
| | | | | |── PackageModel11
| | | | | |── PackageModel12
| | | | |── Package1ServiceProvider
| | | | └── migrations
| | | |── models/
| | | |── controllers/
| | | |── migrations/
| | | └── /
| | |── tests/
| | |── composer.json/
│ ├── app
│ ├── database/
│ ├── resources/
│ └── public/

为了加载我的自定义包,我使用了各种函数

<?php

namespace MyName\Package1;

use Illuminate\Support\ServiceProvider;

class Package1ServiceProvider extends ServiceProvider
{
public function boot()
{
$this->loadFactoriesFrom(['database/factories']);
$this->loadRoutesFrom(__DIR__.'/routes.php');
$this->loadMigrationsFrom(__DIR__.'/migrations');
$this->loadViewsFrom(__DIR__.'/views', '');
$this->publishes([
__DIR__.'/views' => base_path('resources/views'),
]);
}

public function register()
{
// Register controllers Here
}
}

既然 loadFactoriesFrom 已弃用,我该如何加载这些工厂?

更新

我在这里找到了如何做 connect models and Factories并且他们记录覆盖 newFactory() 函数。

所以我的测试中有以下内容

  public function testWithPermissionUserCanSaveNewOnlineAssessment()
{
$topic = ELearningTopic::factory()->create();
$this->actingAs($this->user, 'api')
->post('api/e-learning/course-content/topics/.' . $topic->id . './online-assessments', [])
->assertStatus(401);
}

我的工厂

class ELearningTopicFactory extends Factory
{
public function definition()
{
return [
'name' => 'Some name'
];
}
}

还有我的模特

  use HasFactory;
protected static function newFactory()
{
return ELearningTopicFactory::new();
}

现在我得到下面的错误

Class 'App\ELearningTopic' not found

我可能会遗漏什么?为什么不覆盖模型类

最佳答案

Laravel 8 改变了工厂的工作方式。

无论如何,如果你想在 laravel 8 中使用旧工厂风格,只需安装 laravel legacy-factories

这个包为 Laravel 8.x+ 提供了对上一代 Laravel 工厂(<= 7.x)的支持。

有关此问题的更多详细信息,请参阅 github link .

关于php - 方法 'loadFactoriesFrom' 已弃用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/66867068/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com