Postingan lainnya
relasi antar table pada laravel
public function up()
{
Schema::create('profiles', function (Blueprint $table) {
$table->increments('id');
$table->string('nama', 100);
$table->enum('jenis_kelamin', ['laki-laki', 'perempuan']);
$table->string('alamat');
$table->char('no_telp', 20);
$table->integer('user_id')->unsigned(); //ini apa ya? gimana cara ngebacanya?
$table->timestamps();
$table->foreign('user_id') // dan ini juga hmm
->references('id')
->on('users')
->onUpdate('cascade')
->onDelete('cascade');
});
}
5 Jawaban:
$table->integer('user_id')->unsigned()?
itu kayanya salah deklarasinya deh, setahu ane harus begini:
$table->integer('id_user_fk')->nullable()->comment("id user FK");
jgn di jadiin unsigned mending jadi foreign key, kalo unsigned gmn mau ngambil data dari users? Dan semua di jadiin nullable aja kecuali id increments, biar nanti di bagian model bisa dikasih validasi
contoh: $table->increments('id'); $table->string('nama',100)->nullable(); note: diujungnya dikasih "nullable" atau "kosong", biar nanti waktu diisi di form input gak ada yang error tapi harus kasih validasi di model ya, agar mencegah miss penginputan
owhh gitu ya gan... makasih ya... code di atas bukan punya saya gan... saya nyomot punya orang.... saya ga bisa baca code tersebut... mangkanya bertanya... dan maaf... soal jawaban agan pun saya kaga paham hmm... terima kasih tanggapannya :D
hahaha sama2 gan, intinya banyak2 bertanya dan mencari referensi lebih lanjut.
Jawaban Terpilih
$table->integer('user_id')->unsigned(); // artinya kolom pada user_id tidak boleh kosong.
$table->foreign('user_id') // untuk menentukan foreign key-nya
->references('id') // untuk menentukan referensinya
->on('users') // untuk menentukan id dari tabelnya
->onUpdate('cascade') // saat user di update maka akan mengikuti user
->onDelete('cascade'); // saat user di hapus maka akan ikut terhapus
Note : pastikan table user telah ada pada database nya