【发布时间】:2020-02-26 03:18:43
【问题描述】:
因为我正在开发包,所以我把我的工厂放在这样的自定义路径中:
-- app
-- packages
-----mockizart
-------blog
---------database
--------------factories
----------------- PageModelFactory.php
---------src
这就是我在我的服务提供商中加载工厂的方式(我已经通过在 phpstorm 上单击它来确保路径正确):
function boot()
{
Factory::construct($this->app->make(\Faker\Generator::class), __DIR__."/../database/factories");
}
这是我的页面模型工厂(我已经确定这个文件真的被加载了):
<?php
/** @var \Illuminate\Database\Eloquent\Factory $factory */
use Mockizart\Blog\Dodols\PageModel;
use Faker\Generator as Faker;
$factory->define(PageModel::class, function (Faker $faker) {
return [
'name' => "retretre",
'slug' => "retretret",
'type' => 0,
'category' => 0,
'tags' => "",
'content' => "",
];
});
这是我的脚本测试:
use Mockizart\Blog\Dodols\PageModel;
.....
.....
/** @test */
public function edit_page()
{
dd(PageModel::find(1)); <-- this return was NULL so I think my class and namespace does exist.
factory(PageModel::class)->make(); <-- this cause error "unable to locate factory......"
$response = $this->get('/blog/page/edit/15');
$response->assertStatus(200);
}
【问题讨论】: