【问题标题】:How to update or create at same time in Laravel如何在 Laravel 中同时更新或创建
【发布时间】:2023-02-21 13:15:50
【问题描述】:

我有一个页面显示来自两个表的数据,每列前面都有一个左连接和一个编辑按钮。当用户点击编辑按钮时,它会转到一个不同的页面,用户可以在其中更新输入字段,但同时,我希望如果某些字段未显示数据,我们只能在两个表的 id 时创建数据匹配。通过这个,我可以很容易地更新它,但我无法创建它显示错误

尝试在 null 上分配属性“SchemeId”

控制器

public function SchConfigrationUpdate(Request $request, $SchemeId)
{
    $scheme = tbl_schemeconfigration::find($SchemeId);        
    $scheme->SchemeId = $request->input('SchemeId');       
    $scheme->MerchantCode = $request->input('MerchantCode');
    $scheme->BankAccountNumber = $request->input('BankAccountNumber');
    $scheme->BankAccountIFSC = $request->input('BankAccountIFSC');
    $scheme->save();        
    return redirect()
        ->back()
        ->with('success', 'Scheme Update Successfully');
}

看法

<form action="{{ url('SchConfigration-update/' . $user->SchemeId) }}" method="post"
      enctype="multipart/form-data">
    @csrf
    @method('PUT')
    <input type="hidden" name="SchemeId" value="{{ $user->SchemeId }}">
    <div class="form_row">
        <div class="form_item">
            <label>Scheme Name</label>
            <input type="text" id="SchemeId" name="SchemeId"
                   placeholder="Enter scheme name" class="form-control" required
                   value="{{ $user->SchemeId }}">
            {{-- value="{{ request()->SchemeId }}" --}}
            {{-- if we want to pass scheme name just pass $user->SchemeName --}}
        </div>
        <div class="form_item">
            <label>Merchant Code</label>
            <input type="text" id="MerchantCode" name="MerchantCode"
                   placeholder="Enter Merchant Code" class="form-control" required
                   value="{{ $user->MerchantCode }}">
        </div>
    </div>
    <div class="form_row">
        <div class="form_item">
            <label>Bank Account Number</label>
            <input type="text" id="BankAccountNumber" name="BankAccountNumber"
                   placeholder="Bank account Number" maxlength="17" class="form-control" required
                   value="{{ $user->BankAccountNumber }}">
        </div>
        <div class="form_item">
            <label>Bank Account IFSC</label>
            <input type="text" id="BankAccountIFSC" name="BankAccountIFSC"
                   placeholder="Bank account IFSC" maxlength="11" class="form-control" required
                   value="{{ $user->BankAccountIFSC }}">
        </div>
    </div>
    <div class="btn_row">
        <input type="submit" value="submit" class="primary_btn">
        <a class="btn btn-primary" href="{{ url('SchConfigration') }}"
           role="button">Back</a>
    </div>
</form>

【问题讨论】:

  • 你使用的是什么 Laravel 版本?
  • laravel 8 先生@dbf
  • 在一个叫做 documentation 的东西里有一个叫做 updateOrCreate 的东西
  • updateOrCreate 对我不起作用,先生,你能为我编辑我的控制器吗@dbf
  • 不不,你至少得试一试..

标签: php laravel


【解决方案1】:

尝试这个

public function SchConfigrationUpdate(Request $request, $SchemeId)
{
      $scheme = tbl_schemeconfigration::updateOrCreate(
          ['SchemeId' => $request->input('SchemeId')],
          [
              'MerchantCode' => $request->input('MerchantCode'),
              'BankAccountNumber' => $request->input('BankAccountNumber'),
              'BankAccountIFSC' => $request->input('BankAccountIFSC')
            ]
        );

      return redirect()
                ->back()
                ->with('success', 'Scheme Update Successfully');
}

【讨论】:

  • 先生,一个问题,为什么你把 SchemeId 放在不同的绑定中,就像这样 ['SchemeId' => $request->input('SchemeId')],
  • 还有一个问题,为什么会发生错误“尝试在 null 上分配属性“SchemeId””我想知道未来
猜你喜欢
  • 2014-01-12
  • 1970-01-01
  • 2018-10-15
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-10-29
  • 2016-01-15
相关资源
最近更新 更多