有没有一种方法可以更新单个用户完成的不同交易的状态?

时间:2019-12-24 22:53:00

标签: php laravel

一个用户有许多基金交易,当我单击按钮时,我想将一个交易的状态从待处理更新为活动。 我正在使用此模型:

public function up()
    {
        Schema::create('funds', function (Blueprint $table) {
            $table->bigIncrements('id');
            $table->unsignedBigInteger('user_id');
            $table->string('accnumber')->nullable();
            $table->text('Remarks')->nullable();
            $table->text('acc_type')->nullable();
            $table->string('status')->default('pending');
            $table->rememberToken();
            $table->timestamps();

            $table->index('user_id');
        });
    }

然后,我使用带有foreach循环的按钮创建了index.blade.php,该循环带有按钮以将默认状态从待处理状态更新为活动状态:

 @foreach($user as $user)
                          <tr>
                            <td> {{ $user->accno }} </td>
                            <td>{{ $user->accnumber }}</td>
                            <td> {{ $user->Remarks }} </td>
                            <td>{{ $user->acc_type }}</td>
                            <td>
                                <input data-id="{{$user->id}}" class="toggle-class" type="checkbox" data-onstyle="success" data-offstyle="danger" data-toggle="toggle" data-on="Active" data-off="InActive" {{ $user->status ? 'pending' : '' }}>
                            </td>
                          </tr>
                        @endforeach
                        </tbody>
                      </table>
                    </div>
                    <!-- /.card-body -->
                </div>
            </div>
        </section>

        <script>
            $(function() {
              $('.toggle-class').change(function() {
                  var status = $(this).prop('pending') == true ? 1 : 0; 
                  var user_id = $(this).data('id'); 

                  $.ajax({
                      type: "GET",
                      dataType: "json",
                      url: '/changeStatus',
                      data: {'status': status, 'user_id': user_id},
                      success: function(data){
                        console.log(data.success)
                      }
                  });
              })
            })
          </script>

我正在通过在线教程进行此操作,我想使用此控制器自行实现:

public function changeStatus(Request $request)
    {
        $user = User::find($request->user_id);
        $funds = $user->Funds()->status;
        $funds = $request->status;
        $user->save();

        return response()->json(['success'=>'Status change successfully.']);
    }

1 个答案:

答案 0 :(得分:0)

如果要更改单个用户的所有交易的状态,请执行以下操作:

public function changeStatus(Request $request)
{
    $user = User::find($request->user_id);

    $user->Funds()->update(['status', $request->status]);

    return response()->json(['success' => 'Status changed successfully.']);
}