Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/275.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 本地化Faker\Factory在laravel中不起作用_Php_Laravel_Laravel 5.4 - Fatal编程技术网

Php 本地化Faker\Factory在laravel中不起作用

Php 本地化Faker\Factory在laravel中不起作用,php,laravel,laravel-5.4,Php,Laravel,Laravel 5.4,我有一个带有以下字段的Post模型: post_id post_title post_content post_content_full author 现在,我想使用laravel sedders和模型工厂创建假的fa_IR本地化数据,并插入到posts表中 为此,我在数据库/factories/ModelFactory.php中写了这篇文章: $factory->define(App\Post::class, function (Faker\Generator $faker) {

我有一个带有以下字段的Post模型:

post_id
post_title
post_content
post_content_full
author
现在,我想使用laravel sedders和模型工厂创建假的
fa_IR
本地化数据,并插入到
posts
表中

为此,我在
数据库/factories/ModelFactory.php
中写了这篇文章:

$factory->define(App\Post::class, function (Faker\Generator $faker) {
        return [
            'post_title'        => $faker->sentence,
            'post_content'      => $faker->paragraph,
            'post_content_full' => $faker->paragraph(3),
            'author'            => $faker->name
        ];
    });
然后我创建了一个
PostsTableSeeder
类,如下所示:

use Illuminate\Database\Seeder;

class PostsTableSeeder extends Seeder
{
    /**
     * Run the database seeds.
     *
     * @return void
     */
    public function run ()
    {
        factory(App\Post::class, 5)->create();
    }
}
AppServiceProvider.php
中,向
register
函数添加了以下代码:

$this->app->singleton(FakerGenerator::class, function () {
        return FakerFactory::create('fa_IR');
    });
但是在运行seed之后,laravel使用默认语言环境(
en_-US
),并忽略
fa_-IR

我不知道还能做什么

更新:

甚至我在
DEFAULT\u LOCALE
const
vendor/fzaninoto/faker/src/faker/Factory.php中更改为
fau-IR
没有任何更改。

试试这种方法

$factory->define(App\Post::class, function () {
    $faker = Faker\Factory::create('fa_IR');

    return [
        'post_title'        => $faker->sentence,
        'post_content'      => $faker->paragraph,
        'post_content_full' => $faker->paragraph(3),
        'author'            => $faker->name
    ];
});
这样试试

$factory->define(App\Post::class, function () {
    $faker = Faker\Factory::create('fa_IR');

    return [
        'post_title'        => $faker->sentence,
        'post_content'      => $faker->paragraph,
        'post_content_full' => $faker->paragraph(3),
        'author'            => $faker->name
    ];
});

并非所有的伪造方法都在每种语言中得到支持,从文档的快速查找可以看出,
公司和
地址
提供者在
fa_IR
本地化中得到支持,从文档的快速查找可以看出,并非所有伪造方法都在每种语言中得到支持,
公司
地址
提供商在
fa_IR
本地化中受支持

您需要更改应用程序配置文件中的伪造区域设置。

您需要更改应用程序配置文件中的伪造区域设置。

结果相同。您可以遵循这一点,但当我使用
text()
方法,它使用默认本地化。它具有相同的结果。您可以按照此操作,这里有一个
text
提供程序,但当我使用
text()
方法时,它使用默认本地化。您可以尝试使用
->address()
方法吗?,可能是您正在使用的函数在
fa_IR
语言中不受支持是的,它在使用地址时起作用。这是否意味着
parahraph
fa_IR
语言中不受支持?是的,很遗憾,这是对的,我认为可以自定义段落,但这似乎不是很方便。您可以尝试使用
->address()
方法吗?,可能是您正在使用的函数在
fa_IR
语言中不受支持是的,它在使用地址时起作用。这是否意味着
parahraph
fa_IR
语言中不受支持?是的,很遗憾,这是对的,我认为可以自定义段落,但这似乎不是很容易。我在哪里可以找到支持哪些提供者?@A.B.Developer在哪里可以找到支持哪些提供者?@A.B.Developer