2016-03-28 31 views
2

Laravel 5'te bir sorunum var. Veritabanındaki bir kaydı güncelleştirdiğimde Unknown column 'id' in 'where clause' numaralı hatayı alıyorum. Denetleyicide, güncelleştirmek istediğim kaydı almak için WHERE yan tümcesini kullanıyorum. Benim birincil anahtarım id değil ve tip bigInteger. Modele protected $primaryKey eklemeyi denedim ancak bigInteger için çalışmıyor. Kimlik kullanmak yerine kendi birincil anahtarımı kullanmanın bir yolu var mı?Laravel 5 güncelleme olmadan

Kontrolör

$item = Item::where('item_id','=',$item_id)->first(); 
$item.name = $name; 
$item.type = $type; 
$item.save(); 
+0

Denetleyiciyi göster. – user2094178

+0

Denetleyiciyi ekledim – OrgGila

+0

Öğe :: bul ($ item_id) 'ı deneyin. Ayrıca, php'de ruby ​​sözdizimini kullanıyorsunuz, kodunuzun geri kalanında '$ item.' yerine' $ item-> 'olmalıdır. – user2094178

cevap

1

pls Item.php modeline bu satırı ekleyin

class Item extends Model {


// bu satırı ekleyin sadece
protected $primaryKey = 'item_id';

//..... the rest of your model

senin kullanarak özel kimliği adı beri

hala modeline

0

belirtmek olmadan birincil anahtar nedir, laravel bilmiyor olacak 'id'. sınıf ORM uzanır Yani

... where {$this->primaryKey} = {$this->{$this->primaryKey}} 

: orm güncelleme, bu gibi sql kullanmak

.

protect $primaryKey = '<your_table_primary_key>'; yeniden tanımlamalısınız.

2

laravel en orm $primaryKey varsayılan de protected $primaryKey = "item_id"; eklemek çalışma yoksa bu $item = Item::where('item_id', $item_id)->first(); deneyin o