2017-10-06 9 views
0

私はバックパックで自分のユーザーのためのcrudを作った。ユーザーを作成するとすべてうまく動作しますが、更新すると「パスワード」のエラーが表示されます。更新したくない場合は空白にしてパスワードをnullにすることはできません。laravelバックパックユーザーのパスワード

空白のままにすると、「パスワード」をPOSTに追加できないのはなぜですか?または、どのように私は現在のパスワードにデフォルトするのですか?また、「確認」フィールドがありますか? UserCrudController.php

<?php 

    namespace App\Http\Controllers\Admin; 

    use Backpack\CRUD\app\Http\Controllers\CrudController; 
    use App\User; 
    use Auth; 

    // VALIDATION: change the requests to match your own file names if you need form validation 
    use App\Http\Requests\UserCrudRequest as StoreRequest; 
    use App\Http\Requests\UserCrudRequest as UpdateRequest; 

    class UserCrudController extends CrudController { 

     public function setup() { 
      $this->crud->setModel("App\User"); 
      $this->crud->setRoute(config('backpack.base.route_prefix')."/user"); 
      $this->crud->setEntityNameStrings('user', 'users'); 

      $this->crud->setColumns([ 
       ['name' => 'lastname', 'label' => "Last Name"], 
       ['name' => 'firstname', 'label' => "First Name"], 

      ]); 


      $this->crud->addFields([ 
       [ 
        'name' => 'firstname', 
        'label' => "First name" 
       ], 
       [ 
        'name' => 'lastname', 
        'label' => "First name" 
       ], 


        [ // Password 
         'name' => 'password', 
         'label' => 'Password', 
         'type' => 'password' 
        ], 

      ]); 


     } 

     public function store(StoreRequest $request) 
     { 
      // <--------- here is where a before_insert callback logic would be 

      $response = parent::storeCrud(); 

      // <--------- here is where a after_insert callback logic would be 

      return $response; 
     } 

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

      // Hash password before save 
      if (!empty($request->password)) { 
       $request->offsetSet('password', Hash::make($request->password)); 
      }else{ 
       $request->offsetSet('password', $user->password); 
      } 

      return parent::updateCrud(); 
     } 
    } 

エラー:

Integrity constraint violation: 1048 Column 'password' cannot be null (SQL: update `users` set `password` = , `updated_at` = 2017-10-06 15:08:25 where `id` = 1) 
+0

は私にあなたのcontroler方法を示していると私はフィル・コントローラを追加 – iCoders

+0

@iCodersを形成します。私はCRUDにバックパックを使用しています。 https://laravel-backpack.readme.io/docs – Packy

+0

あなたはdd($ request-> all())できますか?出力を表示し、Auth :: user()も出力します – iCoders

答えて

0

あなたは削除してみることができますこのようなパスワード:

  // Hash password before save 
     if (!empty($request->password)) { 
      $request->offsetSet('password', Hash::make($request->password)); 
     }else{ 
      $request->remove('password'); 
     } 
関連する問題