faker本地化不起作用

JellyBool ,我用的是5.3版本的,看的是你这个系列的视频:稍微深入Laravel 5 >> 本地化Model Factory

<?php

namespace App\Providers;

use Illuminate\Support\ServiceProvider;
use Faker\Generator as FakerGenerator;
use Faker\Factory as FakerFactory;

class AppServiceProvider extends ServiceProvider
{
    /**
     * Bootstrap any application services.
     *
     * @return void
     */
    public function boot()
    {
        //生成数据本地化
        $this->app->singleton(FakerGenerator::class, function() {
            return FakerFactory::create('zh_CN');
        });
    }

    /**
     * Register any application services.
     *
     * @return void
     */
    public function register()
    {

    }
}
JellyBool

在 ModelFactory 文件的顶部试着这样试试:

$faker = Faker\Factory::create('zh_CN');
wangyuchen 回复 JellyBool

我在整个ModelFactory的文件顶部和下面的位置都试了还是不行,生成出来的都是英文的。。

$faker = Faker\Factory::create('zh_CN');
$factory->define(App\Models\Article::class, function (Faker\Generator $faker) {
    DB::table('article')->truncate();
    return [
        'title'         =>  $faker->sentence,
        'abstract'      =>  $faker->sentence,
        'content'       =>  $faker->paragraph,
        'image'         =>  $faker->imageUrl(),
        'created_user'  =>  $faker->randomNumber(),
        'updated_user'  =>  $faker->randomNumber(),
        'look_num'      =>  $faker->randomNumber(),
        'is_recommend'  =>  round(rand(0,1)),
        'is_show'       =>  round(rand(0,1))
    ];
});
JellyBool 回复 wangyuchen

这样呢?

$factory->define(App\Models\Article::class, function (Faker\Generator $faker) {
$faker = Faker\Factory::create('zh_CN');
    DB::table('article')->truncate();
    return [
        'title'         =>  $faker->sentence,
        'abstract'      =>  $faker->sentence,
        'content'       =>  $faker->paragraph,
        'image'         =>  $faker->imageUrl(),
        'created_user'  =>  $faker->randomNumber(),
        'updated_user'  =>  $faker->randomNumber(),
        'look_num'      =>  $faker->randomNumber(),
        'is_recommend'  =>  round(rand(0,1)),
        'is_show'       =>  round(rand(0,1))
    ];
});

还是不行的话,你看看 faker 这个package 下面有没有对于的语言 zh_CN 的文件夹。也有可能是 这些 title 和 paragraph 没有中文。

wangyuchen 回复 JellyBool

也还是不行唉,这个package的包在vendor的那个位置呢?包太多了找不到。。

wangyuchen 回复 JellyBool

找找到了,有这个有zh_CN的文件夹的,也就是说,有中文咯,为啥还是不行啊?

JellyBool 回复 wangyuchen

你直接试试 $faker->address 和 $faker->name 这样试试,估计是没有全部的中文吧,有些字段并没有提供中文

wangyuchen 回复 JellyBool

解决了,还真是,我用name就可以,估计是没有这么多中文啊。。唉

skyeryg

在config/app.php 中增加 ‘faker_locale’ => ‘zh_CN’, 即可

ericshen 回复 skyeryg

藏得真深啊!