相關系列文章:
01.在 windows 10 安裝 laravel 12 studentManagement環境與設定
02.laravel 12 route 路由
03.laravel 12 Blade Templates 網頁模版
04.laravel 12 Controller 控制器
05.Laravel 12 Migration 遷移-資料庫版本控制
06.Laravel 12 Model 資料庫中的資料表,並提供與資料庫互動的介面
07.laravel 資料庫資料填充工廠入門
08.laravel 12 Eloquent ORM-Query Builder
09.laravel 12 Eloquent ORM-Eloquent ORM
10.Laravel 12:Eloquent 必學技巧一次掌握(Scopes、Soft Deletes、CRUD)
11.Laravel 12 表單驗證教學
12.Laravel 12 圖片上傳與刪除記錄及文件
01.在 windows 10 安裝 laravel 12 studentManagement環境與設定
02.laravel 12 route 路由
03.laravel 12 Blade Templates 網頁模版
04.laravel 12 Controller 控制器
05.Laravel 12 Migration 遷移-資料庫版本控制
06.Laravel 12 Model 資料庫中的資料表,並提供與資料庫互動的介面
07.laravel 資料庫資料填充工廠入門
08.laravel 12 Eloquent ORM-Query Builder
09.laravel 12 Eloquent ORM-Eloquent ORM
10.Laravel 12:Eloquent 必學技巧一次掌握(Scopes、Soft Deletes、CRUD)
11.Laravel 12 表單驗證教學
12.Laravel 12 圖片上傳與刪除記錄及文件
一、針對原先學生資料表進行資料的填充
指令:php artisan make:factory StudentFactory --model=Student
'name'=>$this->faker->name(),
'email'=>$this->faker->unique()->safeEmail,
'age'=>$this->faker->numberBetween(10,25),
'date_of_birth'=>$this->faker->date('Y-m-d'),
'gender'=>$this->faker->randomElement(['m','f']),
use HasFactory;
然後,我們到database\seeders\DatabaseSeeder.php
Student::factory(100)->create();
比方說,想要在資料庫中設定所有國家/地區列表
指令: php artisan make:model Countries -mc
在database\migrations\2025_08_11_060449_create_countries_table.php ,寫入 $table->string('name')->nullable(false);
$table->string('code')->nullable(false);
如下圖所示:
指令:php artisan migrate[
{
"name": "Afghanistan",
"code": "AF"
},
{
"name": "Albania",
"code": "AL"
},
{
"name": "Algeria",
"code": "DZ"
},
{
"name": "American Samoa",
"code": "AS"
},
{
"name": "Andorra",
"code": "AD"
},
{
"name": "Angola",
"code": "AO"
},
{
"name": "Anguilla",
"code": "AI"
},
{
"name": "Antarctica",
"code": "AQ"
},
{
"name": "Antigua and Barbuda",
"code": "AG"
},
{
"name": "Argentina",
"code": "AR"
},
{
"name": "Armenia",
"code": "AM"
},
{
"name": "Aruba",
"code": "AW"
},
{
"name": "Asia/Pacific Region",
"code": "AP"
},
{
"name": "Australia",
"code": "AU"
},
{
"name": "Austria",
"code": "AT"
},
{
"name": "Azerbaijan",
"code": "AZ"
},
{
"name": "Bahamas",
"code": "BS"
},
{
"name": "Bahrain",
"code": "BH"
},
{
"name": "Bangladesh",
"code": "BD"
},
{
"name": "Barbados",
"code": "BB"
},
{
"name": "Belarus",
"code": "BY"
},
{
"name": "Belgium",
"code": "BE"
},
{
"name": "Belize",
"code": "BZ"
},
{
"name": "Benin",
"code": "BJ"
},
{
"name": "Bermuda",
"code": "BM"
},
{
"name": "Bhutan",
"code": "BT"
},
{
"name": "Bolivia",
"code": "BO"
},
{
"name": "Bonaire, Sint Eustatius and Saba",
"code": "BQ"
},
{
"name": "Bosnia and Herzegovina",
"code": "BA"
},
{
"name": "Botswana",
"code": "BW"
},
{
"name": "Bouvet Island",
"code": "BV"
},
{
"name": "Brazil",
"code": "BR"
},
{
"name": "British Indian Ocean Territory",
"code": "IO"
},
{
"name": "Brunei Darussalam",
"code": "BN"
},
{
"name": "Bulgaria",
"code": "BG"
},
{
"name": "Burkina Faso",
"code": "BF"
},
{
"name": "Burundi",
"code": "BI"
},
{
"name": "Cambodia",
"code": "KH"
},
{
"name": "Cameroon",
"code": "CM"
},
{
"name": "Canada",
"code": "CA"
},
{
"name": "Cape Verde",
"code": "CV"
},
{
"name": "Cayman Islands",
"code": "KY"
},
{
"name": "Central African Republic",
"code": "CF"
},
{
"name": "Chad",
"code": "TD"
},
{
"name": "Chile",
"code": "CL"
},
{
"name": "China",
"code": "CN"
},
{
"name": "Christmas Island",
"code": "CX"
},
{
"name": "Cocos (Keeling) Islands",
"code": "CC"
},
{
"name": "Colombia",
"code": "CO"
},
{
"name": "Comoros",
"code": "KM"
},
{
"name": "Congo",
"code": "CG"
},
{
"name": "Congo, The Democratic Republic of the",
"code": "CD"
},
{
"name": "Cook Islands",
"code": "CK"
},
{
"name": "Costa Rica",
"code": "CR"
},
{
"name": "Croatia",
"code": "HR"
},
{
"name": "Cuba",
"code": "CU"
},
{
"name": "Curaçao",
"code": "CW"
},
{
"name": "Cyprus",
"code": "CY"
},
{
"name": "Czech Republic",
"code": "CZ"
},
{
"name": "Côte d'Ivoire",
"code": "CI"
},
{
"name": "Denmark",
"code": "DK"
},
{
"name": "Djibouti",
"code": "DJ"
},
{
"name": "Dominica",
"code": "DM"
},
{
"name": "Dominican Republic",
"code": "DO"
},
{
"name": "Ecuador",
"code": "EC"
},
{
"name": "Egypt",
"code": "EG"
},
{
"name": "El Salvador",
"code": "SV"
},
{
"name": "Equatorial Guinea",
"code": "GQ"
},
{
"name": "Eritrea",
"code": "ER"
},
{
"name": "Estonia",
"code": "EE"
},
{
"name": "Ethiopia",
"code": "ET"
},
{
"name": "Falkland Islands (Malvinas)",
"code": "FK"
},
{
"name": "Faroe Islands",
"code": "FO"
},
{
"name": "Fiji",
"code": "FJ"
},
{
"name": "Finland",
"code": "FI"
},
{
"name": "France",
"code": "FR"
},
{
"name": "French Guiana",
"code": "GF"
},
{
"name": "French Polynesia",
"code": "PF"
},
{
"name": "French Southern Territories",
"code": "TF"
},
{
"name": "Gabon",
"code": "GA"
},
{
"name": "Gambia",
"code": "GM"
},
{
"name": "Georgia",
"code": "GE"
},
{
"name": "Germany",
"code": "DE"
},
{
"name": "Ghana",
"code": "GH"
},
{
"name": "Gibraltar",
"code": "GI"
},
{
"name": "Greece",
"code": "GR"
},
{
"name": "Greenland",
"code": "GL"
},
{
"name": "Grenada",
"code": "GD"
},
{
"name": "Guadeloupe",
"code": "GP"
},
{
"name": "Guam",
"code": "GU"
},
{
"name": "Guatemala",
"code": "GT"
},
{
"name": "Guernsey",
"code": "GG"
},
{
"name": "Guinea",
"code": "GN"
},
{
"name": "Guinea-Bissau",
"code": "GW"
},
{
"name": "Guyana",
"code": "GY"
},
{
"name": "Haiti",
"code": "HT"
},
{
"name": "Heard Island and Mcdonald Islands",
"code": "HM"
},
{
"name": "Holy See (Vatican City State)",
"code": "VA"
},
{
"name": "Honduras",
"code": "HN"
},
{
"name": "Hong Kong",
"code": "HK"
},
{
"name": "Hungary",
"code": "HU"
},
{
"name": "Iceland",
"code": "IS"
},
{
"name": "India",
"code": "IN"
},
{
"name": "Indonesia",
"code": "ID"
},
{
"name": "Iran, Islamic Republic Of",
"code": "IR"
},
{
"name": "Iraq",
"code": "IQ"
},
{
"name": "Ireland",
"code": "IE"
},
{
"name": "Isle of Man",
"code": "IM"
},
{
"name": "Israel",
"code": "IL"
},
{
"name": "Italy",
"code": "IT"
},
{
"name": "Jamaica",
"code": "JM"
},
{
"name": "Japan",
"code": "JP"
},
{
"name": "Jersey",
"code": "JE"
},
{
"name": "Jordan",
"code": "JO"
},
{
"name": "Kazakhstan",
"code": "KZ"
},
{
"name": "Kenya",
"code": "KE"
},
{
"name": "Kiribati",
"code": "KI"
},
{
"name": "Korea, Republic of",
"code": "KR"
},
{
"name": "Kuwait",
"code": "KW"
},
{
"name": "Kyrgyzstan",
"code": "KG"
},
{
"name": "Laos",
"code": "LA"
},
{
"name": "Latvia",
"code": "LV"
},
{
"name": "Lebanon",
"code": "LB"
},
{
"name": "Lesotho",
"code": "LS"
},
{
"name": "Liberia",
"code": "LR"
},
{
"name": "Libyan Arab Jamahiriya",
"code": "LY"
},
{
"name": "Liechtenstein",
"code": "LI"
},
{
"name": "Lithuania",
"code": "LT"
},
{
"name": "Luxembourg",
"code": "LU"
},
{
"name": "Macao",
"code": "MO"
},
{
"name": "Madagascar",
"code": "MG"
},
{
"name": "Malawi",
"code": "MW"
},
{
"name": "Malaysia",
"code": "MY"
},
{
"name": "Maldives",
"code": "MV"
},
{
"name": "Mali",
"code": "ML"
},
{
"name": "Malta",
"code": "MT"
},
{
"name": "Marshall Islands",
"code": "MH"
},
{
"name": "Martinique",
"code": "MQ"
},
{
"name": "Mauritania",
"code": "MR"
},
{
"name": "Mauritius",
"code": "MU"
},
{
"name": "Mayotte",
"code": "YT"
},
{
"name": "Mexico",
"code": "MX"
},
{
"name": "Micronesia, Federated States of",
"code": "FM"
},
{
"name": "Moldova, Republic of",
"code": "MD"
},
{
"name": "Monaco",
"code": "MC"
},
{
"name": "Mongolia",
"code": "MN"
},
{
"name": "Montenegro",
"code": "ME"
},
{
"name": "Montserrat",
"code": "MS"
},
{
"name": "Morocco",
"code": "MA"
},
{
"name": "Mozambique",
"code": "MZ"
},
{
"name": "Myanmar",
"code": "MM"
},
{
"name": "Namibia",
"code": "NA"
},
{
"name": "Nauru",
"code": "NR"
},
{
"name": "Nepal",
"code": "NP"
},
{
"name": "Netherlands",
"code": "NL"
},
{
"name": "Netherlands Antilles",
"code": "AN"
},
{
"name": "New Caledonia",
"code": "NC"
},
{
"name": "New Zealand",
"code": "NZ"
},
{
"name": "Nicaragua",
"code": "NI"
},
{
"name": "Niger",
"code": "NE"
},
{
"name": "Nigeria",
"code": "NG"
},
{
"name": "Niue",
"code": "NU"
},
{
"name": "Norfolk Island",
"code": "NF"
},
{
"name": "North Korea",
"code": "KP"
},
{
"name": "North Macedonia",
"code": "MK"
},
{
"name": "Northern Mariana Islands",
"code": "MP"
},
{
"name": "Norway",
"code": "NO"
},
{
"name": "Oman",
"code": "OM"
},
{
"name": "Pakistan",
"code": "PK"
},
{
"name": "Palau",
"code": "PW"
},
{
"name": "Palestinian Territory, Occupied",
"code": "PS"
},
{
"name": "Panama",
"code": "PA"
},
{
"name": "Papua New Guinea",
"code": "PG"
},
{
"name": "Paraguay",
"code": "PY"
},
{
"name": "Peru",
"code": "PE"
},
{
"name": "Philippines",
"code": "PH"
},
{
"name": "Pitcairn Islands",
"code": "PN"
},
{
"name": "Poland",
"code": "PL"
},
{
"name": "Portugal",
"code": "PT"
},
{
"name": "Puerto Rico",
"code": "PR"
},
{
"name": "Qatar",
"code": "QA"
},
{
"name": "Reunion",
"code": "RE"
},
{
"name": "Romania",
"code": "RO"
},
{
"name": "Russian Federation",
"code": "RU"
},
{
"name": "Rwanda",
"code": "RW"
},
{
"name": "Saint Barthélemy",
"code": "BL"
},
{
"name": "Saint Helena",
"code": "SH"
},
{
"name": "Saint Kitts and Nevis",
"code": "KN"
},
{
"name": "Saint Lucia",
"code": "LC"
},
{
"name": "Saint Martin",
"code": "MF"
},
{
"name": "Saint Martin",
"code": "MF"
},
{
"name": "Saint Pierre and Miquelon",
"code": "PM"
},
{
"name": "Saint Vincent and the Grenadines",
"code": "VC"
},
{
"name": "Samoa",
"code": "WS"
},
{
"name": "San Marino",
"code": "SM"
},
{
"name": "Sao Tome and Principe",
"code": "ST"
},
{
"name": "Saudi Arabia",
"code": "SA"
},
{
"name": "Senegal",
"code": "SN"
},
{
"name": "Serbia",
"code": "RS"
},
{
"name": "Serbia and Montenegro",
"code": "CS"
},
{
"name": "Seychelles",
"code": "SC"
},
{
"name": "Sierra Leone",
"code": "SL"
},
{
"name": "Singapore",
"code": "SG"
},
{
"name": "Sint Maarten",
"code": "SX"
},
{
"name": "Slovakia",
"code": "SK"
},
{
"name": "Slovenia",
"code": "SI"
},
{
"name": "Solomon Islands",
"code": "SB"
},
{
"name": "Somalia",
"code": "SO"
},
{
"name": "South Africa",
"code": "ZA"
},
{
"name": "South Georgia and the South Sandwich Islands",
"code": "GS"
},
{
"name": "South Sudan",
"code": "SS"
},
{
"name": "Spain",
"code": "ES"
},
{
"name": "Sri Lanka",
"code": "LK"
},
{
"name": "Sudan",
"code": "SD"
},
{
"name": "Suriname",
"code": "SR"
},
{
"name": "Svalbard and Jan Mayen",
"code": "SJ"
},
{
"name": "Swaziland",
"code": "SZ"
},
{
"name": "Sweden",
"code": "SE"
},
{
"name": "Switzerland",
"code": "CH"
},
{
"name": "Syrian Arab Republic",
"code": "SY"
},
{
"name": "Taiwan",
"code": "TW"
},
{
"name": "Tajikistan",
"code": "TJ"
},
{
"name": "Tanzania, United Republic of",
"code": "TZ"
},
{
"name": "Thailand",
"code": "TH"
},
{
"name": "Timor-Leste",
"code": "TL"
},
{
"name": "Togo",
"code": "TG"
},
{
"name": "Tokelau",
"code": "TK"
},
{
"name": "Tonga",
"code": "TO"
},
{
"name": "Trinidad and Tobago",
"code": "TT"
},
{
"name": "Tunisia",
"code": "TN"
},
{
"name": "Turkey",
"code": "TR"
},
{
"name": "Turkmenistan",
"code": "TM"
},
{
"name": "Turks and Caicos Islands",
"code": "TC"
},
{
"name": "Tuvalu",
"code": "TV"
},
{
"name": "Uganda",
"code": "UG"
},
{
"name": "Ukraine",
"code": "UA"
},
{
"name": "United Arab Emirates",
"code": "AE"
},
{
"name": "United Kingdom",
"code": "GB"
},
{
"name": "United States",
"code": "US"
},
{
"name": "United States Minor Outlying Islands",
"code": "UM"
},
{
"name": "Uruguay",
"code": "UY"
},
{
"name": "Uzbekistan",
"code": "UZ"
},
{
"name": "Vanuatu",
"code": "VU"
},
{
"name": "Venezuela",
"code": "VE"
},
{
"name": "Vietnam",
"code": "VN"
},
{
"name": "Virgin Islands, British",
"code": "VG"
},
{
"name": "Virgin Islands, U.S.",
"code": "VI"
},
{
"name": "Wallis and Futuna",
"code": "WF"
},
{
"name": "Western Sahara",
"code": "EH"
},
{
"name": "Yemen",
"code": "YE"
},
{
"name": "Zambia",
"code": "ZM"
},
{
"name": "Zimbabwe",
"code": "ZW"
},
{
"name": "Åland Islands",
"code": "AX"
}
] DB::table('countries')->insert($countries);
即可看到
錯誤問題解決:
1.問題描述:
做虛假資料時,要配合資料表欄位
'name'=>$this->faker->name(),
'email'=>$this->faker->unique()->safeEmail,
'age'=>$this->faker->numberBetween(10,25),
'date_of_birth'=>$this->faker->date('Y-m-d'),
'gender'=>$this->faker->randomElement(['m','f']),
就會出現錯誤訊息如下:
SQLSTATE[HY000]: General error: 1364 Field 'name' doesn't have a default value (Connection: mysql, SQL: insert into `students` (`updated_at`, `created_at`) values (2025-11-14 02:08:14, 2025-11-14 02:08:14))
所以修正輸入改為
'name' => $this->faker->name(),
'email' => $this->faker->unique()->safeEmail,
'age' => $this->faker->numberBetween(10,25),
'created_at' => $this->faker->dateTimeBetween('-1 year','now'),
'updated_at' => $this->faker->dateTimeBetween('-6 month','now'),
'date_of_birth' => $this->faker->date('Y-m-d'),
'gender' => $this->faker->randomElement(['m','f']),
截圖如下:

















沒有留言:
張貼留言