Postingan lainnya
[solved] Error saat create data berdasarkan id pada tabel lain - laravel
Halo,
Saya ingin membuat insert data baru dengan men-select terlebih dahulu data pada tabel lain, mohon bantuan saran dan solusinya.
Seperti pada gambar berikut
View data prodi berisi data fakultas
ketika memilih menambahkan Prodi, fakultas terpilih otomatis
Saya mengalami error ketika akan membuat data prodi
ini kode yang saya buat
Tabel View Prodi
<table>
<thead class="thead-light">
<tr>
<th scope="col">{{ __('Nama Fakultas') }}</th>
<th scope="col"></th>
</tr>
</thead>
<tbody>
@forelse ($data as $prodis)
<tr>
<td>{{ $prodis->namaFakultas }}</td>
<td>
@csrf
<a href="{{ route('prodi.create') }}" class="btn btn-primary">Tambah Data</a>
</td>
</tr>
@empty
<tr>
<td class="text-center" colspan="6">Tidak ada data</td>
</tr>
@endforelse
</tbody>
</table>
ProdiController
public function index()
{
$data = Fakultas::latest()->paginate(5);
return view('prodi.index',compact('data'));
}
public function create($id)
{
$data = Fakultas::findOrfail($id);
return view('prodi.create', compact('data'));
}
public function store(Request $request, $id)
{
$request->validate([
'namaProdi' => 'required',
'kodeProdi' => 'required'
]);
$form_data = array(
'namaProdi' => $request->namaLembaga,
'kodeProdi' => $request->alamatLembaga,
'idFakultas' => $request->idFakultas
);
Prodi::create($form_data);
return redirect('prodi')->with('success', 'Data is successfully updated');
}
form create
<form method="post" action="{{ route('prodi.store') }}" enctype="multipart/form-data">
@csrf
<div class="form-group">
<label for="">Kode Program Studi</label>
<input type="text" name="kodeProdi" class="form-control" placeholder=" ">
</div>
<div class="form-group">
<label for="">Nama Program Studi</label>
<input type="text" name="namaProdi" class="form-control" placeholder=" ">
</div>
<div class="form-group">
<label for="">Nama Fakultas</label>
<input type="text" name="idFakultas" readonly="readonly" class="form-control" value="{{ $data->id }}">
</div>
<div class="form-group">
<button class="btn btn-primary btn-sm">Create</button>
</div>
</form>
Mohon Bantuannya . .
3 Jawaban:
Di bagian storenya kamu ubah
<pre> //bagian ini kamu ganti $form_data = array( 'namaProdi' => $request->namaLembaga, 'kodeProdi' => $request->alamatLembaga, 'idFakultas' => $request->idFakultas );
//ubah request user inputnya $form_data = array( 'namaProdi' => $request->namaProdi, 'kodeProdi' => $request->kodeProdi, 'idFakultas' => $id ); </pre> Semoga berhasil ^^
Jawaban Terpilih
Terima kasih mas bosque, saya kurang teliti. saya sudah menemukan permasalahannya, masalahnya ada pada method dan route. saya terlalu fokus pada method resources.
saya menambahkan method baru
<pre> public function buat($id) { $data = Fakultas::findOrfail($id); return view('prodi.create', compact('data')); } </pre>
dan menambahkan route baru
<pre> Route::get('prodi/{id}/buat', 'ProdiController@buat'); </pre>