Postingan lainnya
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