2

管理パネルのユーザー編集機能を行っています。モデルに「一意の」ルールがある場合に Ardent が推奨するように、コードで updateUniques() を使用しています。

やってみると問題なく通りますが、機種は変わっていません。

私のコード:

$user = User::findOrFail($id);

if ($user->exists)
{
    $user::$rules['password'] = (Input::get('password')) ? 'required|confirmed' : '';
    $user::$rules['password_confirmation'] = (Input::get('password')) ? 'required' : '';
}

if ($user->updateUniques())
{
    Session::flash('successes', array_merge((array) Session::get('successes'), ['Pomyślnie zmieniono użytkownika']));
    return Redirect::route('users.show', ['users'   =>  $user->id]);
}
else
{
    return Redirect::route('users.edit', ['users'   =>  $user->id])
    ->withErrors($user->errors())
    ->withInput(Input::except('password'));
}
4

1 に答える 1

1

デバッグ中に、モデルが新しいデータでハイドレートされていないことに気付きました。少しグーグルで調べた後、解決策を思いつきました。

モデルに以下を追加する必要がありました:

public $forceEntityHydrationFromInput = true;
public $autoPurgeRedundantAttributes = true;
于 2014-01-14T15:25:34.777 に答える