by Devin Yang

建立於: 8年前 ( 更新: 8年前 )

在Laravel中,如何用ModelFactory建立中文的假資料呢?
我是這麼做的參考看看吧。
<?php
use FakerFactory as TwFacker;
/** @var IlluminateDatabaseEloquentFactory $factory */
$factory->define(AppUser::class, function (FakerGenerator $faker) {
static $password;
$tw_faker = TwFacker::create('zh_TW');
return [
'name' => $tw_faker->name,
'address' => $tw_faker->address,
'city' => preg_replace('#(.{3})(.*)#um', '$1', $tw_faker->city),
'email' => $faker->unique()->safeEmail,
'password' => $password ?: $password = bcrypt('secret'),
'remember_token' => str_random(10),
];
});

自訂一個TwFacker的別名,我們就可以使用他了。
在這裡用 $tw_faker->name 取代原來Laravel提供的 $faker->name ,所以就可以儲存中文的名字。

我們也可以自己在Laravel的專安目錄下,的vendor/fzaninotto/faker/src/Faker/Provider/zh_TW進行相關本地化的檔案調整。

例如Text.php的文字,即可以產生更符合我們所需要的假資料中文啦..
https://github.com/fzaninotto/Faker/blob/master/src/Faker/Provider/zh_TW/Text.php

Tags: laravel ModelFactory

Devin Yang

文章內容無法一一說明,如果您有什麼不了解處,歡迎提問哦:)

No Comment

Post your comment

需要登入才可留言!

類似的文章


laravel

加欄位同時更新Laravel

被朋友說,墨菲定律,升級總是那麼不順,當然要升給他看我有多順,沒在怕的。 我還順便加了個欄位。

laravel,livewire

livewire重要筆記

在開始您的 Livewire 之旅之前,以下是關於公開屬性(public properities)的三項基本注意事項:一、屬性名稱不能與為 Livewire 保留的屬性名稱衝突(例如$rules或$message)二、儲存在公開屬性(public properities)中的資料,對前端 JavaScript 是可見的。因此,您不應在其中儲存敏感資料。三、屬性只能是 JavaScript 友好的資料類型(字符串、整數、數組、布爾值),或以下 PHP 類型之一:Stringable、Collection、DateTime、Model、EloquentCollection。

docker,laravel

[D-Laravel]./console node

進行Laravel開發時,有時我們會需要透過npm安裝nodejs的套件,但是偏偏我們系統中的Node又不夠新。 或許因某些因素沒法升級,例如要跑舊版的nodejs程式等。 其實我們可以透過簡單的指令,用docker,讓我們就能使用最新版本的node image來掛載host端的/sites資料夾囉。 這麼一來我們就可以隨時執行新版本的npm指令啦。