Laravel의 레코드를 이전과 같은 값으로 업데이트하려면 어떻게해야합니까?Laravel 동일한 값을 가진 mysql 필드 업데이트
다음을 시도했지만 작동하지 않았으므로 값을 가져 와서 설정하기 위해 다른 쿼리를 수행하고 싶지 않습니다.
$user = User::update($edit['id'], array(
'name' => $edit['username'],
'email' => $edit['email'],
'password' => (is_null($edit['password']) ? '`password`' : Hash::make($edit['password'])),
));
아이디어가 있으십니까? User
가 Eloquent
모델 인 경우
$update_info = [
'name' => $edit['username'],
'email' => $edit['email']
];
if (! empty($edit['password'])) {
$update_info['password'] = Hash::make($edit['password']);
}
$user = User::where_id($edit['id'])::update($update_info);
는,이 시도 :
$user = User::where_id($edit['id'])::update([
'name' => $edit['username'],
'email' => $edit['email'],
'password' => empty($edit['password']) ? DB::raw('`password`') : Hash::make($edit['password'])
]);
더 나은 그냥 배열에 설정하지하는 것입니다 : DB::raw()
가 무엇의
해결 방법은 제안되지 않았다. 첫 번째는 이전과 똑같은 일을하고 두 번째 것은'배열로 스칼라 값을 사용할 수 없다 '메시지를 반환합니다 – Alex
@ w0rldart -'User'는 웅변 모델입니까? –
네, 클래스 Eloquent extends 클래스입니다 – Alex