2015-09-21 1 views
2

У меня есть эта таблица оружие, которые имеют столбцы weaponID, weaponName, wStock, wDescс использованием уникального правила Laravel 4 по обновлению базы данных записей

в моей функции обновления внутри контроллера, у меня есть этот набор правил

public function c_updateSystemUser($id) 
{ 
    $rules = array(
      'weaponName' => 'required|min:2|max:50|regex:/^[a-zA-Z0-9\-\s]+$/|unique:weaponTbl,weaponName,' . $id, 
      'wStock'  => 'required|numeric', 
      'wDesc'  => 'required|min:1|max:100|regex:/^[a-zA-Z0-9\-\s]+$/' 

     ); 
    //other stuff 
} 

Когда я обновил и только изменил wStock, у него возникли проблемы, потому что он говорит, что имя оружия уже существует. поэтому я использовал уникальное правило

unique:weaponTbl,weaponName,' . $id, 

, потому что я хотел, за исключением записи которого им в настоящее время работает над но когда я проверил это i'am наличие этих ошибок

Column not found: 1054 Unknown column 'id' in 'where clause' 
(SQL: select count(*) as aggregate from `weaponTbl` where `weaponName` = unicorn and `id` <> 1) 

почему, что, используя только идентификатор в то время как у меня нет «id» в моей таблице, но только с оружием? есть ли способ обходиться с этим?

ответ

1

Внутри вашего класса оружия вам необходимо изменить первичный ключ:

class Weapon extends Eloquent { 

    protected $primaryKey = 'weaponID'; 

} 

А затем измените уникальное правило:

unique:weaponTbl,weaponName,' . $id . ',weaponID' 
+0

Еще была такая же ошибка здесь мое оружие модель класса ' devOG

+1

Хмм ... попробуйте изменить уникальное правило на' unique: weaponTbl, weaponName '. $ id. ', weaponID'' –

+0

спасибо! это сработало! действительно оценили! :) – devOG

 Смежные вопросы

  • Нет связанных вопросов^_^