当前位置: 首页 > 知识库问答 >
问题:

SQLSTATE[42S22]:未找到列:1054未知列'id'在'其中子句'Id为空

王扬
2023-03-14

当我想更新数据,和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:updateTb_-Barangsetnama_-Barang=Barang 02,Tb_-Barangupdated_at=2019-06-22 13:17:23其中id为空)

共有2个答案

王君墨
2023-03-14

默认情况下,Laravel使用“id”作为主键。如果使用不同的名称,可能需要更改模型中的$primaryKey,如下所示:

protected $primaryKey = 'id_barang';

建议您只使用“id”作为主键,这样可以省去很多麻烦。

戎高爽
2023-03-14

Laravel默认为主键的id。你可以在你的Model上覆盖它:

Class YourClass extends Model {

    protected $primaryKey = "id_barang";

    // rest of your class
}
 类似资料:
  • 关于,我正在使用主键=idusuarios的同一视图更新一个名为usuarios的表,insert使我完美地解决了问题,因为当我要更新时,它会生成错误 SQLSTATE[42S22]:找不到列: 1054未知列'usuarios.id'in'where子句'(SQL: Select*fromwhere. 这是我的密码 模型 类Usuario扩展模型{ 另一张表的模型 控制器 公理

  • 我使用的框架Laravel。 我有两个表(用户和成员)。当我想登录时,我会收到错误消息: SQLSTATE[42S22]:找不到列: 1054未知的列'user_email'in'where子句'(SQL:选择*fromwhere=?限制1)(绑定:数组(0= 表用户 表成员 迁移用户 移民成员 模型用户 模范会员 成员模型使用:使用照明\Auth\UserInterface; 控制器 auth.

  • 我是编程界的新手,我自己在学习laravel,我发现了这个错误:SQLSTATE[42S22]:Column not found:1054未知列'clientes.clientes\u id'在'where子句中(SQL:select*fromwhere=1和不为空)(视图:/shared/httpd/laravel_8_crud/resources/views/pedidos/index.bla

  • 我正在尝试使用PDO向MySQL插入一条记录,下面的代码中可以看到我的sql语句。 当执行此代码时,我会遇到以下错误消息; SQLState[42S22]:找不到列:1054“Field List”中的未知列“John” 这无疑是解决这个问题的一个简单方法,但我似乎看不出来,有人能给我指明正确的方向吗?

  • 我正在数据库雄辩的关系一对一,但写代码后,我得到一个错误: SQLSTATE[42S22]:未找到列:1054个未知列“posts”。在where子句中删除了“'in'”(SQL:) 此代码用于我链接用户id的post表 后表迁移 这是我要链接帖子的用户表 用户模型迁移 User.php代码 这是路线: Routes\web.php

  • 此函数有问题。它应该返回使用下面的sql调用收集的数据的json字符串。问题是,当通过服务器访问页面时(例如-localhost/app/API/states/Alabama/1/10.json),我得到一个错误代码“500”。奇怪的是,数据在使用.json和不使用appending.json的情况下按预期显示。据我所知,控制器和模型设置得很好,但错误代码仍然存在: {“code”:500,“ur