Tahun baru, skill baru! 🚀. Masukkan kupon "skill2025" untuk diskon 30% di kelas apa saja

Update Data Gagal

Hello gan mau nanya nih, saya lagi belajar elequent relation one to one nih. nah pas saya mau coba update data nomer telepon kenak error :

 SQLSTATE[42S22]: Column not found: 1054 Unknown column ' no_telepon' in 'where clause' (SQL: select count(*) as aggregate from `telepon` where ` no_telepon` = 085612345006 and `id_siswa` <> )

padahal sudah sesuai antara struktur di dbnya dan di script controllernya.

Scritp Controller

public function edit($id)
    {
        //
        $siswa  = Siswa::findOrFail($id);
        $siswa->no_telepon = $siswa->telepon->no_telepon;
        return  view('siswa.edit', compact('siswa'));
    }

    /**
     * Update the specified resource in storage.
     *
     * @param  \Illuminate\Http\Request  $request
     * @param  int  $id
     * @return \Illuminate\Http\Response
     */
    public function update(Request $request, $id)
    {
        //
        $siswa = Siswa::findOrFail($id);
        $input = $request->all();
        $validator = Validator::make($input, [
            'nisn'  => 'required|string|size:4|unique:siswa,nisn,' . $request->input('id'),
            'nama_siswa'  => 'required|string|max:30',
            'tgl_lahir' =>  'required|date',
            'jenis_kelamin' => 'required|in:L,P',
            'no_telepon' => 'sometimes|numeric|digits_between:10,15|unique:telepon, no_telepon,'. $request->input('id') . ',id_siswa',
        ]);

        if ($validator->fails()) {
            return redirect('siswa/' . $id . '/edit')->withInput()->withErrors($validator);
        }


        $siswa->update($request->all());
        $telepon = $siswa->telepon;
        $telepon->no_telepon = $request->input('no_telepon');
        $siswa->telepon()->save($telepon);
        return  redirect('siswa');


    }

Script form edit

 @extends('template')

@section('main')
		<div id="siswa">
			<h2>Edit Siswa</h2>

			{!! Form::model($siswa, ['method' => 'PATCH', 'action' => ['SiswaController@update', $siswa->id]]) !!}

				<div class="form-group">
					{!! Form::label('nisn', 'NISN', ['class' => 'control-label']) !!}
					{!! Form::text('nisn', null, ['class' => 'form-control']) !!}
				</div>
				@if ($errors->any())
	<div class="form-group {{ $errors->has('nama_siswa') ? 'has-error' : 'has-success' }}">
@else
	<div class="form-group">
@endif
	{!! Form::label('nama_siswa', 'Nama Siswa', ['class' => 'control-label']) !!}
	{!! Form::text('nama_siswa', null, ['class' => 'form-control']) !!}

@if ($errors->has('nama_siswa'))
	<span class="help-block">{{ $errors->first('nama_siswa') }}</span>
@endif
	</div>
<!-- End Form Nama Siswa -->

<!-- Form Tanggal Lahir -->
@if ($errors->any())
	<div class="form-group {{ $errors->has('tgl_lahir') ? 'has-error' : 'has-success' }}">
@else
	<div class="form-group">
@endif
	{!! Form::label('tgl_lahir', 'Tanggal Lahir', ['class' => 'control-label']) !!}
	{!! Form::date('tgl_lahir', !empty($siswa) ? $siswa->tgl_lahir->format('Y-m-d'): null, ['class' => 'form-control', 'id' => 'tgl_lahir']) !!}
@if ($errors->has('tgl_lahir'))
	<span class="help-block">{{ $errors->first('tgl_lahir') }}</span>
@endif
	</div>
<!-- End Form Tanggal Lahir -->

<!-- Form Jenis Kelamin -->
@if ($errors->any())
	<div class="form-group {{ $errors->has('jenis_kelamin') ? 'has-error' : 'has-success' }}">
@else
	<div class="form-group">
@endif
	{!! Form::label('jenis_kelamin', 'Jenis Kelamin', ['class' => 'control-label']) !!}
		<div class="radio">
			<label>{!! Form::radio('jenis_kelamin', 'L') !!} Laki-Laki</label>
		</div>
		<div class="radio">
			<label>{!! Form::radio('jenis_kelamin', 'P') !!} Perempuan</label>
		</div>
			@if ($errors->has('jenis_kelamin'))
				<span class="help-block">{{ $errors->first('jenis_kelamin') }}</span>
			@endif
	</div>
<!-- End Form Jenis Kelamin -->

<!-- Form Nomor Telepon -->
@if ($errors->any())
	<div class="form-group {{ $errors->has('no_telepon') ? 'has-error' : 'has-success' }}">
@else
	<div class="form-group">
@endif
	{!! Form::label('no_telepon', 'Telepon', ['class' => 'control-label']) !!}
	{!! Form::text('no_telepon', null, ['class' => 'form-control']) !!}

@if ($errors->has('no_telepon'))
	<span class="help-block">{{ $errors->first('no_telepon') }}</span>
@endif
	</div>
<!-- End Form Nomor Telepon -->

				<div class="form-group">
						{!! Form::submit('Update',['class' => 'btn btn-primary form-control']) !!}

				</div>

			{!! Form::close() !!}
		</div>
@stop

@section('footer')
		@include('footer')
@stop

Mohon Pencerahanya gan

avatar ardakusuma
@ardakusuma

50 Kontribusi 4 Poin

Diperbarui 6 tahun yang lalu

7 Jawaban:

kayaknya di querynya gan coba di chek lagi, nama table atau nama fieldnya barangkali salah

avatar maszgalang
@maszgalang

297 Kontribusi 80 Poin

Dipost 6 tahun yang lalu

sudah bener gan di databasenya,cuman masih error yg sama

avatar ardakusuma
@ardakusuma

50 Kontribusi 4 Poin

Dipost 6 tahun yang lalu

boleh minta hasil dd() dari

<pre> dd($request-&gt;all()); $siswa = Siswa::findOrFail($id); </pre>

avatar lukmanfreedom
@lukmanfreedom

121 Kontribusi 55 Poin

Dipost 6 tahun yang lalu

perhatiin juga gan di modelnya, lihat $fillable di model siswa apa aja yang boleh dimasukin. <pre> //contoh, diasumsiin di model siswa protected $fillable = [' nama', 'nik', 'kelas']; </pre> semoga membantu gan

avatar bosque
@bosque

187 Kontribusi 104 Poin

Dipost 6 tahun yang lalu

<pre> array:7 [â–¼ "_method" =&gt; "PATCH" "_token" =&gt; "PoqfLwlmWSotev5rlBA7Z4PzQBGcFG6nLJV2oPz8" "nisn" =&gt; "1002" "nama_siswa" =&gt; "Agustina Anggraenini" "tgl_lahir" =&gt; "1990-02-16" "jenis_kelamin" =&gt; "P" "no_telepon" =&gt; "089231212332" ] </pre>

itu hasil ddnya gan @lukmanfreedom

avatar ardakusuma
@ardakusuma

50 Kontribusi 4 Poin

Dipost 6 tahun yang lalu

coba di controller, line untuk masukin teleponnya diganti ini.

<pre> $telepon-&gt;no_telepon = $input['no_telepon']; </pre>

avatar lukmanfreedom
@lukmanfreedom

121 Kontribusi 55 Poin

Dipost 6 tahun yang lalu

<pre> $siswa = Siswa::findOrFail($id);

...

$siswa-&gt;nama_siswa = $request-&gt;input('nama_siswa'); $siswa-&gt;no_telepon = $request-&gt;input('no_telepon'); $siswa-&gt;save(); </pre>

itu saja udah bisa untuk update

avatar zillucks
@zillucks

28 Kontribusi 8 Poin

Dipost 6 tahun yang lalu

Login untuk ikut Jawaban