php - SQLSTATE [42S22]:找不到列:1054 'where 子句'中的未知列 'id' Id 为空
问题描述
当我想更新数据时,laravel 仍然显示列 id 但我没有在我的数据库上使用列 id,并且我已经更改了控制器
这是我的表迁移
$table->bigIncrements('id_barang');
$table->string('nama_barang');
$table->integer('stok');
$table->longText('deskripsi_barang');
$table->dateTime('tgl_kadaluarsa');
$table->dateTime('tgl_dibuat');
$table->integer('id_supplier');
$table->timestamps();
});
这是我的模型
protected $table = 'Tb_Barang';
这是我的控制器,没有任何请求或存储到“id”
public function update(Request $request, $id_barang)
{
$data = ModelBarang::where('id_barang',$id_barang)->first(); //
$data->nama_barang = $request->nama_barang;
$data->stok = $request->stok;
$data->deskripsi_barang = $request->deskripsi_barang;
$data->tgl_kadaluarsa =$request->tgl_kadaluarsa;
$data->tgl_dibuat =$request->tgl_dibuat;
$data->id_supplier = $request->id_supplier;
$data->save();
}
这是视图 editbarang.blade.php
@section('content')
<div class="container">
<div class="row justify-content-center">
<div class="col-md-8">
<div class="card">
<div class="card-header">Olah Target</div>
@foreach($data as $datas)
<div class="card-body">
<form action="{{ route('barang.update', $datas->id_barang) }}" method="post" >
{{ csrf_field() }}
{{ method_field('PUT') }}
{{-- <div class="form-group row">
{{-- <label for="id_barang" class="col-md-4 col-form-label text-md-right">{{ __('ID') }}</label>
<div class="col-md-6">
<input id="id_barang" type="text" class="form-control @error('name') is-invalid @enderror" name="id_barang" value="{{$datas->id_barang}}" required autocomplete="name" autofocus disabled>
</div>
</div> --}}
<div class="form-group row">
<label for="nama_barang" class="col-md-4 col-form-label text-md-right">{{ __('Nama Barang') }}</label>
<div class="col-md-6">
<input id="nama_barang" type="text" class="form-control " name="nama_barang" value="{{$datas->nama_barang}}" >
</div>
</div>
<div class="form-group row">
<label for="stok" class="col-md-4 col-form-label text-md-right">{{ __('Stok') }}</label>
<div class="col-md-6">
<input id="stok" type="text" class="form-control" name="stok" value="{{$datas->stok}}" required >
</div>
</div>
<div class="form-group row">
<label for="deskripsi_barang" class="col-md-4 col-form-label text-md-right">{{ __('Deskripsi Barang') }}</label>
<div class="col-md-6">
<input id="deskripsi_barang" type="text" class="form-control @error('name') is-invalid @enderror" name="deskripsi_barang" value="{{$datas->deskripsi_barang}}" required autocomplete="name" autofocus>
</div>
</div>
<div class="form-group row">
<label for="tgl_kadaluarsa" class="col-md-4 col-form-label text-md-right">{{ __('Tanggal Kadaluarsa') }}</label>
<div class="col-md-6">
<input id="tgl_kadaluarsa" type="text" class="form-control " name="tgl_kadaluarsa" value="{{$datas->tgl_kadaluarsa}}">
</div>
</div>
<div class="form-group row">
<label for="tgl_dibuat" class="col-md-4 col-form-label text-md-right">{{ __('Tanggal Dibuat') }}</label>
<div class="col-md-6">
<input id="tgl_dibuat" type="text" class="form-control" name="tgl_dibuat" value="{{$datas->tgl_dibuat}}" required >
</div>
</div>
<div class="form-group row">
<label for="id_supplier" class="col-md-4 col-form-label text-md-right">{{ __('ID Supplier') }}</label>
<div class="col-md-6">
<input id="id_supplier" type="text" class="form-control" name="id_supplier" value="{{$datas->id_supplier}}" required >
</div>
</div>
我得到这样的错误
SQLSTATE [42S22]:未找到列:1054 'where 子句'中的未知列 'id'(SQL:更新
Tb_Barang
集nama_barang
= Barang 02Tb_Barang
,.updated_at
= 2019-06-22 13:17:23 whereid
is null)
解决方案
Laravel 默认id
使用主键。您可以在您的Model上覆盖它:
Class YourClass extends Model {
protected $primaryKey = "id_barang";
// rest of your class
}
推荐阅读
- css - 使用 text-align 与 flexbox 的 align-items 对齐文本之间是否存在显着差异(性能或其他方面)?
- java - 从字符串中提取字符串的某些部分的正确正则表达式是什么
- html - 使图像成为卡片的头部| 引导程序
- javascript - 如何让按钮播放乐蒂动画,同时在里面
- c# - 如何在wpf的listView(无标题)中右对齐数据?
- html - MaterializeCSS 选择背景颜色
- sql - 如何使用 SQL Server 遍历每个潜在的 XML 子元素
- javascript - 我不知道为什么 d3 中的 x.bandwidth = 0
- windows - LOGFONT 的 lfClipPrecision 枚举值的含义
- reactjs - 如何使用反应引导程序限制导航栏的宽度