Postingan lainnya
Laravel - db:seed gagal
ini kenapa tiap kali db:seed kok gagal mulu ya.
Output
SQLSTATE[42S02]: Base table or view not found: 1146 Table 'test.jenis__kelamins' doesn't exist (SQL: insert into `jenis__kelamins` (`jenis_kelamin`, `updated_at`, `created_at`) values (Laki-laki, 2022-11-08 03:23:47, 2022-11-08 03:23:47))
Migrations
public function up()
{
Schema::create('jenis_kelamin', function (Blueprint $table) {
$table->id();
$table->string('jenis_kelamin');
});
}
public function down()
{
Schema::dropIfExists('jenis_kelamin');
}
DatabaseSeeder
protected $input_jenis_kelamin = [
['jenis_kelamin' => 'Laki-laki'],
['jenis_kelamin' => 'Perempuan']
];
public function run()
{
foreach ($this->input_jenis_kelamin as $jenis_kelamin) {
Jenis_Kelamin::create($jenis_kelamin);
}
}
Model Jenis_Kelamin
protected $fillable = [
'jenis_kelamin'
];
2 Jawaban:
<pre>jenis__kelamins doesn't exists </pre><div>artinya table ini tidak tersedia di database kamu<br><br></div>
Tanggapan
Kalo itu sih ane paham gan, masalahnya kenapa bisa berubah jadi "jenis__kelamins" setelah run "php artisan db:seed", padahal di migrations file ane nulis "jenis_kelamin", trus hasil di mysql juga munculnya "jenis_kelamin".
Laravel punya "convention" untuk nama, salah satunya dia mengubah singular jadi plural untuk nama table. Karena itu dia mengasumsikan nama table kamu, jika berbeda dari conventions, perlu deklarasi seperti jawaban di bawah.
Jawaban Terpilih
<div>Sudah ketemu, cuma tambahin protected $table di model</div><pre>protected $table = 'jenis_kelamin' protected $fillable = [ 'jenis_kelamin' ];</pre>
Tanggapan
terima kasih sudah share jawabannya