[英]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.