【问题标题】:Laravel update not working or not routingLaravel 更新不工作或不路由
【发布时间】:2017-09-09 16:35:38
【问题描述】:

我在 laravel 项目中制作了一个更新表单来更新我的数据库中的一些条目,但是当我按下提交按钮时什么都没有发生。我不知道为什么。尝试了一切。 这是表格:

<form action="{{ route('loans.update', $loan->id)}}" method="patch">
    <p class="al-left">
        {{csrf_field()}}
        <label for="date">Date:</label>
        <input type="date" name="date" value="{{$loan->data}}" id="date">
    </p>

    <p class="al-left">
        <label for="name">Name:</label>
        <input type="text" name="name" value="{{$loan->nume}}" id="name">
    </p>

    <p class="al-left">
        <label for="period">Period(months):</label>
        <input type="number" name="period" value="{{$loan->durata}}" id="period">
    </p>

    <p class="al-left">
        <label for="month">Month Rate(euro):</label>
        <input type="number" name="month" value="{{$loan->valoare_rata_luna}}" id="month">
    </p>

    <p class="al-left">
        <label for="amount">Amount:</label>
        <input type="number" name="amount" value="{{$loan->valoare_totala}}" id="amount">
    </p>

    <input type="submit" class="btn btn-sm btn-primary" name="submit" value="Edit">
    <br>
    <br>
</form>

这是控制器中的删除功能:

public function update(Request $request, $id){

    $id = Auth::id();
    $loan =loan::find($id);

    $loan->cod_user=$id;
    $loan->nume = $request->name;
    $loan->data=$request->date;
    $loan->durata=$request->period;
    $loan->valoare_rata_luna=$request->month;
    $loan->valoare_totala=$request->amount;
    $loan->save();
    return view("loans")->with('loans', $loans);
}

路线:

Route::resource('/finance/loans','loanController');

说form action在loans.blade.php中

【问题讨论】:

    标签: php database laravel


    【解决方案1】:

    Form 仅支持GETPOST 方法。您欺骗了“PATCH”方法,例如:

    <form action="{{ route('loans.update', $loan->id)}}" method="POST">  //**Here method = POST
        <p class="al-left">
            {{ csrf_field() }}
            {{ method_field('PATCH') }} //**Here give PATCH by spoofing method
            <label for="date">Date:</label>
            <input type="date" name="date" value="{{$loan->data}}" id="date">
        </p>
        ..
        ..
        ..
    
    </form>
    

    希望对你有帮助。

    【讨论】:

      【解决方案2】:

      Route web.php
      Route::resource('loans', 'LoansController');
      
      <form action="{{ route('loans.update', $loan->id)}}" method="POST">
          {{ csrf_field() }}
          {{ method_field('PATCH') }}
          <input ... />
          <input ... />
          <input ... />
          <input ... />
          <input ... />
      </form>

      【讨论】:

        猜你喜欢
        • 2017-01-27
        • 2016-05-15
        • 1970-01-01
        • 2021-11-24
        • 1970-01-01
        • 2018-02-17
        • 2013-11-26
        • 2015-06-01
        • 1970-01-01
        相关资源
        最近更新 更多