【问题标题】:Laravel: Edit Data on Same Page it's Displayed onLaravel:在显示的同一页面上编辑数据
【发布时间】:2018-10-10 11:13:38
【问题描述】:

我想在显示的同一页面上更改用户数据。 基本上,我想选择已验证或拒绝,单击提交按钮,页面会随着更改而刷新。 所以我有这个代码:

<table class="table table-striped">
    <thead>
    <tr>
        <th scope="col">#</th>
        <th scope="col">Name</th>
        <th scope="col">Receipt</th>
        <th scope="col">Status</th>
        <th scope="col"></th>
    </tr>
    </thead>
    <tbody>
    @foreach($users as $user)
        <tr>
            <form method='POST' action="{{ action('PaymentController@update' , $user->id )}}"
                  enctype="multipart/form-data">
                @csrf
                @method('PUT')
                <th scope="row">{{$user->id}}</th>
                <td>{{$user->name}}</td>
                <td>
                    <a href="/{{$user->receipt}}">{{$user->receipt}}</a>
                </td>
                @if( $user->payment_status != NULL )
                    <td>
                        PAYMENT VERIFIED
                    </td>
                @else
                    <td>
                        <div class="form-group">
                            <select multiple class="form-control-sm" id="exampleFormControlSelect2" name="nsap_reg"
                                    required="">
                                <option value="verified">Verified</option>
                                <option value="NULL">Rejected</option>
                            </select>
                        </div>
                    </td>
                @endif
                <td>
                    <input type="submit" value="SUBMIT">
                </td>
            </form>
        </tr>
    @endforeach
    </tbody>
</table>

控制器:

public function update(Request $request, $id)
{
    $request->validate([
        'nsap_reg' => 'required',
    ]);

    $payment_status = \App\User::find($id);

    ['nsap_reg' => $request->nsap_reg];

    $payment_status->save();
    return redirect('user-status');
}

我的问题是单击提交时没有任何反应,页面只是刷新。 任何帮助将不胜感激。

【问题讨论】:

    标签: laravel laravel-5 crud


    【解决方案1】:

    您只需将nsap_reg 的值设置为用户对象并保存即可。

    $payment_status = \App\User::find($id); $payment_status->nsap_reg = $request->nsap_reg; $payment_status->save();

    【讨论】:

      【解决方案2】:

      正如我所见,您创建了带有多个选择的选择列表,当您将数据保存到数据库时,您将发送数组数据进行保存。 但你必须先将其转换为 json,然后设置为保存。

      下面是保存多选nsap_reg的例子。

      <?php
      
      public function update(Request $request, $id)
      {
          $request->validate([
              'nsap_reg.*' => 'required',
          ]);
      
          $payment_status = \App\User::find($id);
      
          $payment_status->nsap_reg = json_encode($request->input('nsap_reg'));
      
          $payment_status->save();
          return redirect('user-status');
      }
      

      但如果您使用单选,请从选择列表中删除 multiple 属性,然后使用此代码

      <?php
      
      public function update(Request $request, $id)
      {
          $request->validate([
              'nsap_reg' => 'required',
          ]);
      
          $payment_status = \App\User::find($id);
      
          $payment_status->nsap_reg = $request->input('nsap_reg');
      
          $payment_status->save();
          return redirect('user-status');
      }
      

      【讨论】:

        猜你喜欢
        • 2022-01-15
        • 1970-01-01
        • 1970-01-01
        • 2019-09-08
        • 2019-04-27
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2018-04-18
        相关资源
        最近更新 更多