![](/img/trans.png)
[英]Can't send id to resource controller destroy function in Laravel 5.5
[英]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
您可以簡單地執行以下操作:
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.