0

ユーザーを作成するためのlaravelのフォームに問題があります。「パスワードフィールドは必須です」と言い続けます。投稿を確認したところ、パスワードが入力されています。私は熱烈なを使用しており、ユーザー モデルの先頭にこれがあります。

public static $passwordAttributes  = array('password');
public $autoHashPasswordAttributes = true;

そして後で:

function setpasswordAttribute($value)
{
    $this->attributes['password'] = Hash::make($value);
}

これは、パスワードを自動ハッシュするために必要です。

投稿を処理するユーザー コントローラーの部分は次のとおりです。

public function createUserPost()
{
    var_dump(Input::all());
    $user = new User(Input::except('locations'));
    var_dump($user);

    $user->organisation_id = Auth::user()->organisation_id;

    // get locations
    $input_locations = Input::only('locations');

    if($user->save())
    {
        // Match the id's of location to a new user
        $new_user_id = $user->id;
        foreach ($input_locations as $key => $value) {
            $location = Location::find($value);
            User::find($new_user_id)->locations()->attach($location);
        }
        return Redirect::to('users/'.$user->id);
    }
    return $this->createUser($user)->withErrors($user);
}

var_dump($user) で、パスワードも確認できます。

私は本当にここで立ち往生しているので、誰かが私を助けてくれることを本当に願っています. さらに情報を入力する必要がある場合は、喜んで提供します。

4

1 に答える 1

0

これで解決しました。唯一のことは、アタッチ方法がまだ機能していないことです。

public function createUserPost()
{
    $user = new User(Input::except('locations','password'));
    $password = Input::only('password');
    $hashed_password = $password['password'];
    $user->password = $hashed_password;

    $user->organisation_id = Auth::user()->organisation_id;

    // pak het field locations
    $input_locations = Input::only('locations');

    if($user->save())
    {
        // Koppel de id's van de locatie aan de nieuwe user
        $new_user_id = $user->id;
        foreach ($input_locations as $key => $value) {
            $location = Location::find($value);
            User::find($new_user_id)->Location()->attach($location);
        }
        return Redirect::to('users/'.$user->id);
    }
    return $this->createUser($user)->withErrors($user);
}
于 2014-07-11T14:48:00.723 に答える