簡體   English   中英

Laravel 不能刪除數據,可以進入destroy() function 但參數返回null

[英]Laravel can't Delete data, it can enter on destroy() function but it parameter return null

所以我嘗試使用資源路由刪除 laravel 上的數據。 但數據仍然存在並仍然返回 function。我還嘗試從 destroy() 參數中刪除 Greens,它使 $greens 包含“id”。 但是,我仍然希望將 destroy() 參數保持為 (Greens $greens),而不僅僅是 ($greens)

Controller:

    public function destroy(Greens $greens)
    {
        //dd($greens->id);
        Greens::destroy($greens->id);
        return redirect('/greens');
    }

形式:

<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <meta http-equiv="X-UA-Compatible" content="ie=edge">
    <title>Document</title>
</head>

<body>


    <table>
        @foreach ($data as $d)
        <tr>
            <td>
                {{$d['brand']}}
            </td>
            <td>
                <form action="/greens/{{$d['id']}}" method="POST">
                    @method('DELETE')
                    @csrf
                    <button>Delete</button>
                </form>
            </td>
        </tr>
        @endforeach
    </table>


</body>

</html>

Model:

<?php

namespace App\Models;

use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Database\Eloquent\Model;

class Greens extends Model
{
    use HasFactory;
    protected $primaryKey = 'id';
}

路線:

<?php

use App\Http\Controllers\GreensController;
use Illuminate\Support\Facades\Route;

Route::get('/', function () {
    return view('welcome');
});
Route::resource('/greens', GreensController::class);

我嘗試 var_dump $greens->id 但結果是 null

您可以簡單地執行以下操作:

  1. 你的 model 名字需要是單數所以綠色
  2. 對於資源,它應該是Route::resource('greens', GreensController::class);

public function destroy($id)
{
   Green::find($id)->delete();
   return redirect('/greens');
}

在表格中:

<form action="/greens/{{ $d->id }}" method="POST">
   @method('DELETE')
   @csrf
   <input type="submit" value="Delete" />
</form>

當你使用 Laravel 路由資源時,有一個格式你應該遵循,參考這個鏈接: https://laravel.com/docs/9.x/controllers#actions-handled-by-resource-controller

我可以在這里看到你的destroy function $greens是復數形式,你應該使用單數形式$green

public function destroy(Greens $green)
{
    Greens::destroy($green->id);
    return redirect('/greens');
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM