Я новичок в Laravel, я столкнулся с проблемой при создании общей функции обновления,
код 1: это не работает
if ($obj->find($primaryKey)->update($data)){
return TRUE;
}
else
return FALSE;
код 2: но если я попробовал это, это работает:
if ($obj->where("candidate_id", $primaryKey)->update($data)){
return TRUE;
}
else
return FALSE;
я хочу, чтобы код 1 работал
Получил решение:
if ($obj->where($obj->getKeyName(), $primaryKey)->update($data)){
return TRUE;
}
else
return FALSE;
Я собираюсь сделать обоснованное предположение, что, поскольку Laravel ожидает, что первичный ключ будет id
и вы используете candidate_id
что вам нужно установить $primaryKey
свойство вашей модели соответственно.
class Candidate extends Model {
protected $primaryKey = 'candidate_id';
}
Вы также можете проверить, чтобы убедиться, find()
находит что-то до совершения обновления, чтобы избежать ошибок.
if ($object = $obj->find($primaryKey)) {
$object->update($data);
}