[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 . .

avatar Anpuneb
@Anpuneb

5 Kontribusi 0 Poin

Diperbarui 4 tahun yang lalu

3 Jawaban:

nyimak jawaban para suhu

avatar fianbiasa
@fianbiasa

1 Kontribusi 0 Poin

Dipost 4 tahun yang lalu

Di bagian storenya kamu ubah

<pre> //bagian ini kamu ganti $form_data = array( 'namaProdi' =&gt; $request-&gt;namaLembaga, 'kodeProdi' =&gt; $request-&gt;alamatLembaga, 'idFakultas' =&gt; $request-&gt;idFakultas );

//ubah request user inputnya $form_data = array( 'namaProdi' =&gt; $request-&gt;namaProdi, 'kodeProdi' =&gt; $request-&gt;kodeProdi, 'idFakultas' =&gt; $id ); </pre> Semoga berhasil ^^

avatar bosque
@bosque

187 Kontribusi 104 Poin

Dipost 4 tahun yang lalu

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>

avatar Anpuneb
@Anpuneb

5 Kontribusi 0 Poin

Dipost 4 tahun yang lalu

Login untuk ikut Jawaban