Illuminate \ Database \ QueryException(42S22)SQLSTATE [42S22]:列 找不到:1054“ where子句”中的未知列“ produk.id”(SQL: 从
produk
中选择*,其中produk
。id
= 65个限制1)
我不知道错误在哪里 按照我的代码显示错误:
public function update(Request $request, $id)
{
$this->validate($request, $this->aturan, $this->pesan);
$produk = produk::find($id);
$produk->nama_produk = $request['nama'];
$produk->id_kategori = $request['kategori'];
$produk->harga_jual = $request['harga'];
$produk->update();
return Redirect::route('produk.index');
}
/**
* Remove the specified resource from storage.
*
* @param int $id
* @return \Illuminate\Http\Response
*/
public function destroy($id)
{
$produk = Produk::find($id);
$produk->delete();
return Redirect::route('produk.index');
}
答案 0 :(得分:0)
根据口才文档,如果您的模型使用的主键与id
不同,则必须进行配置。 Eloquent期望主键为id
,并且默认情况下它是一个自动递增的整数。
YourModel extends Eloquent ...
{
protected $primaryKey = 'yourOtherKey';
...
}
“雄辩的人还将假定每个表都有一个名为
id
的主键列。您可以定义一个受保护的$primaryKey
属性来覆盖此约定。”“此外,Eloquent假定主键是一个递增的整数值,这意味着默认情况下,主键将自动强制转换为
int
。如果要使用非增量或非数字主键,必须将模型上的公共$incrementing
属性设置为false
。如果主键不是整数,则应将模型上受保护的$keyType
属性设置为string
。”
答案 1 :(得分:0)
请尝试改用findOrFail
$produk = produk::findOrFail($id);