Postingan lainnya
Buku Ini Koding!
Baru!
Buku ini akan jadi teman perjalanan kamu belajar sampai dapat kerjaan di dunia programming!
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
7 Jawaban:
kayaknya di querynya gan coba di chek lagi, nama table atau nama fieldnya barangkali salah
sudah bener gan di databasenya,cuman masih error yg sama
boleh minta hasil dd() dari
<pre> dd($request->all()); $siswa = Siswa::findOrFail($id); </pre>
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
<pre> array:7 [â–¼ "_method" => "PATCH" "_token" => "PoqfLwlmWSotev5rlBA7Z4PzQBGcFG6nLJV2oPz8" "nisn" => "1002" "nama_siswa" => "Agustina Anggraenini" "tgl_lahir" => "1990-02-16" "jenis_kelamin" => "P" "no_telepon" => "089231212332" ] </pre>
itu hasil ddnya gan @lukmanfreedom
coba di controller, line untuk masukin teleponnya diganti ini.
<pre> $telepon->no_telepon = $input['no_telepon']; </pre>
<pre> $siswa = Siswa::findOrFail($id);
...
$siswa->nama_siswa = $request->input('nama_siswa'); $siswa->no_telepon = $request->input('no_telepon'); $siswa->save(); </pre>
itu saja udah bisa untuk update