ste*_*gwa 6
尝试发布您的 laravel 存根并确认存根文件内容已按预期定义。
发布存根。php artisan stub:publish
factory.stub
它的文件内容应该类似于以下内容:
<?php
namespace {{ factoryNamespace }};
use Illuminate\Database\Eloquent\Factories\Factory;
use {{ namespacedModel }};
class {{ factory }}Factory extends Factory
{
/**
* The name of the factory's corresponding model.
*
* @var string
*/
protected $model = {{ model }}::class;
/**
* Define the model's default state.
*
* @return array
*/
public function definition()
{
return [
//
];
}
}
笔记:
从外观上看,您当前的工厂存根似乎缺少以下部分:
// ...
use {{ namespacedModel }};
// ...
/**
* The name of the factory's corresponding model.
*
* @var string
*/
protected $model = {{ model }}::class;
// ...
理想情况下,在正常(默认)情况下,运行生成带有链接模型的工厂的命令应如下所示:
命令:
php artisan make:factory BoardFactory --model=Board
预期的输出文件(database/factories/BoardFactory.php):
<?php
namespace Database\Factories;
use App\Models\Board;
use Illuminate\Database\Eloquent\Factories\Factory;
class BoardFactory extends Factory
{
/**
* The name of the factory's corresponding model.
*
* @var string
*/
protected $model = Board::class;
/**
* Define the model's default state.
*
* @return array
*/
public function definition()
{
return [
//
];
}
}
附录:
正如@miken32在评论中指出的那样,在2021 年 10 月 22 日之后发布的 Laravel 版本中,不再需要在 Factory 类中声明模型属性:
Laravel 拉取请求
此时,数据库工厂具有可以“猜测”数据库模型的隐藏功能。
因此,这个拉取请求建议
protected $model
从工厂中删除stub
,因为当前的“猜测”逻辑可能适用于99.99%
人们。此外,我还向我们protected $model = User::class
从UserFactory.php
: laravel/laravel#5713中删除的骨架请求了请求。
更多推荐
模型,php,artisan,factory
发布评论