[英]Get delete id in controller to delete mysql record
我在 AuthController 中有這個:
public function DelFunc() {
if(Auth::check() === true) {
$deleted = DB::delete('delete from funcionarios where id = ?',[$id]);
}
return redirect()->route('admin.login');
}
但我收到此錯誤:未定義變量:id
我的視圖中有這個按鈕:
<a href="../admin/delFunc?id={{$empresa->id}}">
<button class="btn btn-primary">Delete</button>
</a>
我知道我的問題很簡單,但是,如何獲取 AuthController 上的 id 值來刪除這條記錄?
我也有這條路線:
Route::get('/admin/delFunc', [App\Http\Controllers\AuthController::class, 'delFunc'])->name('delFunc');
這里有一堆危險信號:
Funcionario
object 一起工作時,它會進入名為AuthController
的 controller?destroy
。路由參數在路由定義中使用“/admin/delete/{func}”等大括號定義,然后綁定到 controller 方法定義中的對象。
所以,把所有這些放在一起,它應該是這樣的:
<?php
use App\Http\Controllers\FuncionarioController;
use Illuminate\Support\Facades\Route;
Route::middleware("auth")->group(function ($router) {
$router->delete('/funcionario/{func}', [FuncionarioController::class, 'destroy'])
->name('funcionario.destroy');
});
然后在您的 controller 中:
<?php
namespace App\Http\Controllers;
use App\Models\Funcionario;
class FuncionarioController extends Controller {
public function destroy(Funcionario $func)
{
$func->delete();
return redirect()
->route('admin.login')
->with('success', __('Funcionario deleted'));
}
}
假設您的值在$id
變量中傳遞,您的視圖將如下所示:
<form method="post" action="{{ route("funcionario.destroy", $id) }}">
@method('DELETE')
@csrf
<button type="submit">{{ __("Delete") }}</button>
</form>
而不是[$id]
使用[request('id')]
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.