3

簡単な質問: Laravel Backpacker CRUD admin で保存する前に、リクエスト値を変更 (ハッシュ) するにはどうすればよいですか?

私が理解している限り、これらのメソッドがcrudコントローラーで実行される前に、どこかで実行する必要があります。

public function store(StoreRequest $request)
{
    return parent::storeCrud();
}

public function update(UpdateRequest $request)
{
    return parent::updateCrud();
}

しかし、私はそれを正しく行う方法がわかりません。

編集:リクエストはRequestオブジェクトではなくStoreRequestUpdateRequest次のようになります。 ここに画像の説明を入力

修正:

public function update(UpdateRequest $request)
{
    // Hash password before save
    if (!empty($request->password)) {
        $request->offsetSet('password', Hash::make($request->password));
    }

    return parent::updateCrud($request); // <-- Pass the modified request, otherwise the CRUD reads it again from post data
}
4

2 に答える 2

3

offsetSetメソッドを使用して $request 値を更新できます

$request->offsetSet('name', $newName);

編集:ユーザーのパスワードを更新するには、次のようにします。

public function update_password(Request $request)
{
    $user = User::find(Auth::user()->id);

    if (Hash::check($request->old_password, $user->password)) {
        $user->fill([
            'password' => Hash::make($request->password)
        ])->update();

        return redirect()->back()->with('message' => 'Your password has been updated.');
    }
    else {
        return redirect()->back()->with('message' => 'The password entered do not match our records.');
    }
}

コードをチェックしませんでしたが、動作するはずです。必要に応じて更新します。

于 2016-12-13T12:37:49.593 に答える
2

変数のデータを変更する方法について質問している場合は、次のように$requestするだけです。

$request->property = 'New value';

また、(変数ではなく) reuqest 自体にデータを追加することもできます。

request()->request->add(['key' => 'value']);
于 2016-12-13T12:33:39.923 に答える