LARAVEL:foreach 中的所有元素都具有 id 1,这使得删除它们变得不可能
LARAVEL: All elements from foreach have the id 1, which makes deleting them impossible
我处境艰难。
我正在用刮刀构建一个出生列表克隆,但很难对其进行编码,因为我没有那么有经验。我设法创建了一个管理页面,其中包含多个表单以插入网站、类别和一个 link 表单,您可以在其中指定 link 应该进行哪些抓取以及将抓取到哪个站点和类别link编辑。不过这样的东西加起来没问题,删了就不行了..
我的网站、类别 en links 显示在我的管理页面上,每个元素都有一个抓取和删除按钮。当我删除行中的最后一项时,它会删除第一个元素。当我想删除其他东西时,laravel 抛出一个异常,它试图在 null 上读取 属性,这意味着它不再存在。当我在删除函数之前转储并死亡时,每个列表中的每个项目都有 id '1'。这就是为什么它会删除一行中的第一项。谁能帮帮我?
我认为这是因为请求删除项目的 ID 是从 url 中检索到的,而 url 中给出的 ID 是用户 ID,即 1。所以如果有人可以给我提示以确保我可以以不同的方式提供用户的 ID。让我知道!
我的代码:
管理员控制器:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Website;
use App\Models\Category;
use App\Models\Link;
use Goutte\Client;
class AdminController extends Controller
{
public function showAdmin($id)
{
$categories = Category::all();
$websites = Website::all();
$links = Link::all();
return view('admin', compact('categories', 'websites', 'links'));
}
public function storeWeb(Request $request)
{
$web = Website::create([
'title' => $request->input('site'),
'url' => $request->input('url')
]);
return back();
}
public function destroyWeb(Request $request, $id)
{
$web = Website::find($id);
$web->delete();
return back();
}
public function storeCat(Request $request)
{
$cat = Category::create([
'title' => $request->input('title')
]);
return back();
}
public function destroyCat(Request $request, $id)
{
$cat = Category::find($id)->first();
$cat->delete();
return back();
}
public function storeLink(Request $request)
{
$link = Link::create([
'url' => $request->input('scrapeUrl'),
'main_filter_selector' => $request->input('filter'),
'website_id' => $request->input('website_id'),
'category_id' => $request->input('category_id'),
]);
return back();
}
public function destroyLink(Request $request, $id)
{
$link = Link::find($id);
dd($link);
$link->delete();
return back();
}
public function scrape(Request $request)
{
$link = Link::find($request->link_id);
$scraper = new Scraper (new Client());
$scraper->handle($link);
if($scraper->status == 1) {
return response()->json(['status' => 1, 'msg' => 'Scraping done']);
} else {
return response()->json(['status' => 2, 'msg' => $scraper->status]);
};
}
}
我的管理页面:
<body class="relative min-h-screen">
@include('partials.header')
<main class="pb-20">
<div class="text-center m-auto text-2xl p-4 w-fit border-b">
<h2>Welkom <strong>{{ auth()->user()->name }}</strong></h2>
</div>
<div class="gap-10 m-auto xl:w-3/5">
<div class="mt-8">
<h3 class="bg-gray-100 p-4"><strong>Winkels</strong></h3>
<div class="">
<div class="p-4 m-auto">
<form action="{{ route('newWeb', Auth()->user()) }}" method="POST">
@csrf
<div class="flex wrap flex-row items-center justify-left my-4">
<label for="shop" class="w-2/12">Webshop:</label>
<input type="text" required class="w-7/12 h-fit p-2 focus:outline-sky-500 rounded bg-slate-100" name="site" id="titel" placeholder="Dreambaby">
</div>
<div class="flex wrap flex-row items-center justify-left">
<label for="url" class="w-2/12">
Voeg een url toe:
</label>
<input type="url" required class="w-7/12 h-fit p-2 focus:outline-sky-500 rounded bg-slate-100" name="url" id="url" placeholder="http://dreambaby.com/">
<button class="w-fit bg-green-400 h-fit p-2 rounded hover:bg-green-600 hover:text-white mx-2" name="shop" value="add" type="submit">Voeg link toe</button>
</div>
</form>
<div class="flex wrap flex-row items-center mt-12">
<div class="flex flex-row flex-wrap w-full">
<table class="table-auto">
@foreach ($websites as $web)
<form action="{{ route('delWeb', Auth()->user()) }}" method="POST">
@csrf
@method('DELETE')
<tr class="border-b">
<td class="p-4">{{ $web->title }}</td>
<td class="p-4">{{ $web->id }}</td>
<td class="p-4"><button class="w-fit h-full p-2 bg-red-400 h-fit rounded hover:bg-red-600 hover:text-white block m-auto" type="submit">Verwijderen</button>
</td>
</tr>
</form>
@endforeach
</table>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="gap-10 m-auto xl:w-3/5">
<div class="mt-8">
<h3 class="bg-gray-100 p-4"><strong>Categorieën</strong></h3>
<div class="mt-4">
<div class="p-4 m-auto">
<form action="{{ route('newCat', Auth()->user()) }}" method="POST">
@csrf
<div class="flex wrap flex-row items-center justify-left">
<label for="url" class="w-2/12">
Voeg een categorie toe:
</label>
<input type="text" required class="w-7/12 h-fit p-2 focus:outline-sky-500 rounded bg-slate-100" name="title" id="cat" placeholder="Eten en Drinken">
<button class="w-fit bg-green-400 h-fit p-2 rounded hover:bg-green-600 hover:text-white mx-2" name="category_submit" type="submit">toevoegen</button>
</div>
</form>
<div class="flex wrap flex-row items-center mt-12">
<div class="flex flex-row flex-wrap w-full">
<table class="table-auto">
@foreach ($categories as $category)
<form action="{{ route('delCat', Auth()->user()), $category->id }}" id="{{ $category->id }}" method="POST">
@csrf
@method('DELETE')
<tr class="border-b">
<td class="p-4">{{ $category->title }}</td>
<td class="p-4">{{ $category->id }}</td>
<td class="p-4"><button class="w-fit h-full p-2 bg-red-400 h-fit rounded hover:bg-red-600 hover:text-white block m-auto" type="submit">Verwijderen</button>
</td>
</tr>
</form>
@endforeach
</table>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="gap-10 m-auto xl:w-3/5">
<div class="mt-8">
<h3 class="bg-gray-100 p-4"><strong>Scrapes</strong></h3>
<div class="">
<div class="p-4 m-auto">
<form action="{{ route('newLink', Auth()->user()) }}" method="POST">
@csrf
<div class="flex wrap flex-row items-center justify-left my-4">
<label for="scrape" class="w-2/12">Url:</label>
<input type="text" required class="w-7/12 h-fit p-2 focus:outline-sky-500 rounded bg-slate-100" name="scrapeUrl" id="scrapetitel" placeholder="https://www.thebabyscorner.be/nl-be/baby_eten_en_drinken/">
</div>
<div class="flex wrap flex-row items-center justify-left my-4">
<label for="text" class="w-2/12">
Filter:
</label>
<input type="text" required class="w-7/12 h-fit p-2 focus:outline-sky-500 rounded bg-slate-100" name="filter" id="url" placeholder=".1-products-item">
</div>
<div class="flex wrap flex-row items-center justify-left my-4">
<label for="webpicker" class="w-2/12">Winkel:</label>
<select name="website_id" id="" class="w-7/12 h-fit p-2 focus:outline-sky-500 rounded bg-slate-100">
<option value="#" disabled selected>Kies je winkel</option>
@foreach ($websites as $web)
<option value="{{ $web->id }}" >{{ $web->title }}</option>
@endforeach
</select>
</div>
<div class="flex wrap flex-row items-center justify-left my-4">
<label for="webpicker" class="w-2/12">Categorie:</label>
<select name="category_id" id="" class="w-7/12 h-fit p-2 focus:outline-sky-500 rounded bg-slate-100">
<option value="#" disabled selected>Kies je categorie</option>
@foreach ($categories as $cat)
<option value="{{ $cat->id }}" >{{ $cat->title }}</option>
@endforeach
</select>
<button class="w-fit bg-green-400 h-fit p-2 rounded hover:bg-green-600 hover:text-white mx-2" type="submit" name="scrape_submit">toevoegen</button>
</div>
</form>
<div class="flex wrap flex-row items-center mt-12 w-full">
<div class="flex flex-row flex-wrap w-full">
<form action="{{ route('delLink', Auth()->user()) }}" method="POST">
@csrf
@method('DELETE')
<table class="table-auto w-full">
<tr class="bg-slate-300">
<td class="p-4"><strong>Url</strong></td>
<td class="p-4"><strong>Filter selector</strong></td>
<td class="p-4"><strong>Website</strong></td>
<td class="p-4"><strong>Categorie</strong></td>
<td></td>
<td></td>
</tr>
@foreach ($links as $link)
<tr data-id="{{ $link->id }}" class="">
<td class="p-4 border-r">{{ $link->url }}</td>
<td class="p-4 border-r">{{ $link->main_filter_selector }}</td>
<td class="p-4 border-r">{{ $link->website->title }}</td>
<td class="p-4 border-r">{{ $link->category->title }}</td>
<td class="p-4 border-r"><button class="w-fit bg-green-400 h-fit p-2 rounded hover:bg-green-600 hover:text-white block m-auto" type="submit">Scrape</button></td>
<td class="p-4"><button class="w-fit h-full p-2 bg-red-400 h-fit rounded hover:bg-red-600 hover:text-white block m-auto" type="submit">Verwijderen</button>
</td>
</tr>
@endforeach
</table>
</form>
</div>
</div>
</div>
</div>
</div>
</main>
@include('partials.footer')
</body>
我的路线:
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\HomeController;
use App\Http\Controllers\DashController;
use App\Http\Controllers\ListviewController;
use App\Http\Controllers\NewlistController;
use App\Http\Controllers\BabyController;
use App\Http\Controllers\ScrapeController;
use App\Http\Controllers\AdminController;
use App\Http\Controllers\ItemsController;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
require __DIR__.'/auth.php';
Route::get('/', [HomeController::class, 'home'])->name('home');
Route::get('/home', [HomeController::class, 'home']);
Route::get('/listview', [ListviewController::class, 'listview'])
->name('lists');
Route::middleware('auth')->group (function ()
{
Route::get('/create', [NewlistController::class, 'newlist'])
->name('create');
Route::get('/dashboard/{role}/{id?}', [DashController::class, 'dashboard'])
->name('dashboard');
Route::post('/dashboard/{role}/{id}', [NewlistController::class, 'store']);
Route::get('/dashboard/{user_id}/{baby}', [BabyController::class, 'show'])
->name('baby');
Route::get('/dashboard/{user_id?}/{baby}/catalogus', [ScrapeController::class, 'show']);
Route::get('/admin/{id}', [AdminController::class, 'showAdmin'])
->name('admin');
Route::post('/admin/{id}/websites/', [AdminController::class, 'storeWeb'])
->name('newWeb');
Route::delete('/admin/{id}/websites/', [AdminController::class, 'destroyWeb'])
->name('delWeb');
Route::post('/admin/{id}/categories/', [AdminController::class, 'storeCat'])
->name('newCat');
Route::delete('/admin/{id}/categories/', [AdminController::class, 'destroyCat'])
->name('delCat');
Route::post('/admin/{id}/links/', [AdminController::class, 'storeLink'])
->name('newLink');
Route::delete('/admin/{id}/links/', [AdminController::class, 'destroyLink'])
->name('delLink');
});
替换此代码
<form action="{{ route('delLink', Auth()->user()) }}" method="POST">
@csrf
@method('DELETE')
<table class="table-auto w-full">
<tr class="bg-slate-300">
<td class="p-4"><strong>Url</strong></td>
<td class="p-4"><strong>Filter selector</strong></td>
<td class="p-4"><strong>Website</strong></td>
<td class="p-4"><strong>Categorie</strong></td>
<td></td>
<td></td>
</tr>
@foreach ($links as $link)
<tr data-id="{{ $link->id }}" class="">
<td class="p-4 border-r">{{ $link->url }}</td>
<td class="p-4 border-r">{{ $link->main_filter_selector }}</td>
<td class="p-4 border-r">{{ $link->website->title }}</td>
<td class="p-4 border-r">{{ $link->category->title }}</td>
<td class="p-4 border-r"><button class="w-fit bg-green-400 h-fit p-2 rounded hover:bg-green-600 hover:text-white block m-auto" type="submit">Scrape</button></td>
<td class="p-4"><button class="w-fit h-full p-2 bg-red-400 h-fit rounded hover:bg-red-600 hover:text-white block m-auto" type="submit">Verwijderen</button>
</td>
</tr>
@endforeach
</table>
</form>
有了这个
<table class="table-auto w-full">
<tr class="bg-slate-300">
<td class="p-4"><strong>Url</strong></td>
<td class="p-4"><strong>Filter selector</strong></td>
<td class="p-4"><strong>Website</strong></td>
<td class="p-4"><strong>Categorie</strong></td>
<td></td>
<td></td>
</tr>
@foreach ($links as $link)
<tr data-id="{{ $link->id }}" class="">
<td class="p-4 border-r">{{ $link->url }}</td>
<td class="p-4 border-r">{{ $link->main_filter_selector }}</td>
<td class="p-4 border-r">{{ $link->website->title }}</td>
<td class="p-4 border-r">{{ $link->category->title }}</td>
<td class="p-4 border-r"><button class="w-fit bg-green-400 h-fit p-2 rounded hover:bg-green-600 hover:text-white block m-auto" type="submit">Scrape</button></td>
<td class="p-4">
<form action="{{ route('delLink', $link->id) }}" method="POST">
@csrf
@method('DELETE')
<button class="w-fit h-full p-2 bg-red-400 h-fit rounded hover:bg-red-600 hover:text-white block m-auto" type="submit">Verwijderen</button>
</form>
</td>
</tr>
@endforeach
</table>
你的destroyLink()
方法应该包含这个
public function destroyLink(Request $request)
{
$id = $request->id;
$link = Link::find($id);
$link->delete();
return back();
}
我处境艰难。 我正在用刮刀构建一个出生列表克隆,但很难对其进行编码,因为我没有那么有经验。我设法创建了一个管理页面,其中包含多个表单以插入网站、类别和一个 link 表单,您可以在其中指定 link 应该进行哪些抓取以及将抓取到哪个站点和类别link编辑。不过这样的东西加起来没问题,删了就不行了..
我的网站、类别 en links 显示在我的管理页面上,每个元素都有一个抓取和删除按钮。当我删除行中的最后一项时,它会删除第一个元素。当我想删除其他东西时,laravel 抛出一个异常,它试图在 null 上读取 属性,这意味着它不再存在。当我在删除函数之前转储并死亡时,每个列表中的每个项目都有 id '1'。这就是为什么它会删除一行中的第一项。谁能帮帮我?
我认为这是因为请求删除项目的 ID 是从 url 中检索到的,而 url 中给出的 ID 是用户 ID,即 1。所以如果有人可以给我提示以确保我可以以不同的方式提供用户的 ID。让我知道! 我的代码:
管理员控制器:
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
use App\Models\Website;
use App\Models\Category;
use App\Models\Link;
use Goutte\Client;
class AdminController extends Controller
{
public function showAdmin($id)
{
$categories = Category::all();
$websites = Website::all();
$links = Link::all();
return view('admin', compact('categories', 'websites', 'links'));
}
public function storeWeb(Request $request)
{
$web = Website::create([
'title' => $request->input('site'),
'url' => $request->input('url')
]);
return back();
}
public function destroyWeb(Request $request, $id)
{
$web = Website::find($id);
$web->delete();
return back();
}
public function storeCat(Request $request)
{
$cat = Category::create([
'title' => $request->input('title')
]);
return back();
}
public function destroyCat(Request $request, $id)
{
$cat = Category::find($id)->first();
$cat->delete();
return back();
}
public function storeLink(Request $request)
{
$link = Link::create([
'url' => $request->input('scrapeUrl'),
'main_filter_selector' => $request->input('filter'),
'website_id' => $request->input('website_id'),
'category_id' => $request->input('category_id'),
]);
return back();
}
public function destroyLink(Request $request, $id)
{
$link = Link::find($id);
dd($link);
$link->delete();
return back();
}
public function scrape(Request $request)
{
$link = Link::find($request->link_id);
$scraper = new Scraper (new Client());
$scraper->handle($link);
if($scraper->status == 1) {
return response()->json(['status' => 1, 'msg' => 'Scraping done']);
} else {
return response()->json(['status' => 2, 'msg' => $scraper->status]);
};
}
}
我的管理页面:
<body class="relative min-h-screen">
@include('partials.header')
<main class="pb-20">
<div class="text-center m-auto text-2xl p-4 w-fit border-b">
<h2>Welkom <strong>{{ auth()->user()->name }}</strong></h2>
</div>
<div class="gap-10 m-auto xl:w-3/5">
<div class="mt-8">
<h3 class="bg-gray-100 p-4"><strong>Winkels</strong></h3>
<div class="">
<div class="p-4 m-auto">
<form action="{{ route('newWeb', Auth()->user()) }}" method="POST">
@csrf
<div class="flex wrap flex-row items-center justify-left my-4">
<label for="shop" class="w-2/12">Webshop:</label>
<input type="text" required class="w-7/12 h-fit p-2 focus:outline-sky-500 rounded bg-slate-100" name="site" id="titel" placeholder="Dreambaby">
</div>
<div class="flex wrap flex-row items-center justify-left">
<label for="url" class="w-2/12">
Voeg een url toe:
</label>
<input type="url" required class="w-7/12 h-fit p-2 focus:outline-sky-500 rounded bg-slate-100" name="url" id="url" placeholder="http://dreambaby.com/">
<button class="w-fit bg-green-400 h-fit p-2 rounded hover:bg-green-600 hover:text-white mx-2" name="shop" value="add" type="submit">Voeg link toe</button>
</div>
</form>
<div class="flex wrap flex-row items-center mt-12">
<div class="flex flex-row flex-wrap w-full">
<table class="table-auto">
@foreach ($websites as $web)
<form action="{{ route('delWeb', Auth()->user()) }}" method="POST">
@csrf
@method('DELETE')
<tr class="border-b">
<td class="p-4">{{ $web->title }}</td>
<td class="p-4">{{ $web->id }}</td>
<td class="p-4"><button class="w-fit h-full p-2 bg-red-400 h-fit rounded hover:bg-red-600 hover:text-white block m-auto" type="submit">Verwijderen</button>
</td>
</tr>
</form>
@endforeach
</table>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="gap-10 m-auto xl:w-3/5">
<div class="mt-8">
<h3 class="bg-gray-100 p-4"><strong>Categorieën</strong></h3>
<div class="mt-4">
<div class="p-4 m-auto">
<form action="{{ route('newCat', Auth()->user()) }}" method="POST">
@csrf
<div class="flex wrap flex-row items-center justify-left">
<label for="url" class="w-2/12">
Voeg een categorie toe:
</label>
<input type="text" required class="w-7/12 h-fit p-2 focus:outline-sky-500 rounded bg-slate-100" name="title" id="cat" placeholder="Eten en Drinken">
<button class="w-fit bg-green-400 h-fit p-2 rounded hover:bg-green-600 hover:text-white mx-2" name="category_submit" type="submit">toevoegen</button>
</div>
</form>
<div class="flex wrap flex-row items-center mt-12">
<div class="flex flex-row flex-wrap w-full">
<table class="table-auto">
@foreach ($categories as $category)
<form action="{{ route('delCat', Auth()->user()), $category->id }}" id="{{ $category->id }}" method="POST">
@csrf
@method('DELETE')
<tr class="border-b">
<td class="p-4">{{ $category->title }}</td>
<td class="p-4">{{ $category->id }}</td>
<td class="p-4"><button class="w-fit h-full p-2 bg-red-400 h-fit rounded hover:bg-red-600 hover:text-white block m-auto" type="submit">Verwijderen</button>
</td>
</tr>
</form>
@endforeach
</table>
</div>
</div>
</div>
</div>
</div>
</div>
<div class="gap-10 m-auto xl:w-3/5">
<div class="mt-8">
<h3 class="bg-gray-100 p-4"><strong>Scrapes</strong></h3>
<div class="">
<div class="p-4 m-auto">
<form action="{{ route('newLink', Auth()->user()) }}" method="POST">
@csrf
<div class="flex wrap flex-row items-center justify-left my-4">
<label for="scrape" class="w-2/12">Url:</label>
<input type="text" required class="w-7/12 h-fit p-2 focus:outline-sky-500 rounded bg-slate-100" name="scrapeUrl" id="scrapetitel" placeholder="https://www.thebabyscorner.be/nl-be/baby_eten_en_drinken/">
</div>
<div class="flex wrap flex-row items-center justify-left my-4">
<label for="text" class="w-2/12">
Filter:
</label>
<input type="text" required class="w-7/12 h-fit p-2 focus:outline-sky-500 rounded bg-slate-100" name="filter" id="url" placeholder=".1-products-item">
</div>
<div class="flex wrap flex-row items-center justify-left my-4">
<label for="webpicker" class="w-2/12">Winkel:</label>
<select name="website_id" id="" class="w-7/12 h-fit p-2 focus:outline-sky-500 rounded bg-slate-100">
<option value="#" disabled selected>Kies je winkel</option>
@foreach ($websites as $web)
<option value="{{ $web->id }}" >{{ $web->title }}</option>
@endforeach
</select>
</div>
<div class="flex wrap flex-row items-center justify-left my-4">
<label for="webpicker" class="w-2/12">Categorie:</label>
<select name="category_id" id="" class="w-7/12 h-fit p-2 focus:outline-sky-500 rounded bg-slate-100">
<option value="#" disabled selected>Kies je categorie</option>
@foreach ($categories as $cat)
<option value="{{ $cat->id }}" >{{ $cat->title }}</option>
@endforeach
</select>
<button class="w-fit bg-green-400 h-fit p-2 rounded hover:bg-green-600 hover:text-white mx-2" type="submit" name="scrape_submit">toevoegen</button>
</div>
</form>
<div class="flex wrap flex-row items-center mt-12 w-full">
<div class="flex flex-row flex-wrap w-full">
<form action="{{ route('delLink', Auth()->user()) }}" method="POST">
@csrf
@method('DELETE')
<table class="table-auto w-full">
<tr class="bg-slate-300">
<td class="p-4"><strong>Url</strong></td>
<td class="p-4"><strong>Filter selector</strong></td>
<td class="p-4"><strong>Website</strong></td>
<td class="p-4"><strong>Categorie</strong></td>
<td></td>
<td></td>
</tr>
@foreach ($links as $link)
<tr data-id="{{ $link->id }}" class="">
<td class="p-4 border-r">{{ $link->url }}</td>
<td class="p-4 border-r">{{ $link->main_filter_selector }}</td>
<td class="p-4 border-r">{{ $link->website->title }}</td>
<td class="p-4 border-r">{{ $link->category->title }}</td>
<td class="p-4 border-r"><button class="w-fit bg-green-400 h-fit p-2 rounded hover:bg-green-600 hover:text-white block m-auto" type="submit">Scrape</button></td>
<td class="p-4"><button class="w-fit h-full p-2 bg-red-400 h-fit rounded hover:bg-red-600 hover:text-white block m-auto" type="submit">Verwijderen</button>
</td>
</tr>
@endforeach
</table>
</form>
</div>
</div>
</div>
</div>
</div>
</main>
@include('partials.footer')
</body>
我的路线:
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\HomeController;
use App\Http\Controllers\DashController;
use App\Http\Controllers\ListviewController;
use App\Http\Controllers\NewlistController;
use App\Http\Controllers\BabyController;
use App\Http\Controllers\ScrapeController;
use App\Http\Controllers\AdminController;
use App\Http\Controllers\ItemsController;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
require __DIR__.'/auth.php';
Route::get('/', [HomeController::class, 'home'])->name('home');
Route::get('/home', [HomeController::class, 'home']);
Route::get('/listview', [ListviewController::class, 'listview'])
->name('lists');
Route::middleware('auth')->group (function ()
{
Route::get('/create', [NewlistController::class, 'newlist'])
->name('create');
Route::get('/dashboard/{role}/{id?}', [DashController::class, 'dashboard'])
->name('dashboard');
Route::post('/dashboard/{role}/{id}', [NewlistController::class, 'store']);
Route::get('/dashboard/{user_id}/{baby}', [BabyController::class, 'show'])
->name('baby');
Route::get('/dashboard/{user_id?}/{baby}/catalogus', [ScrapeController::class, 'show']);
Route::get('/admin/{id}', [AdminController::class, 'showAdmin'])
->name('admin');
Route::post('/admin/{id}/websites/', [AdminController::class, 'storeWeb'])
->name('newWeb');
Route::delete('/admin/{id}/websites/', [AdminController::class, 'destroyWeb'])
->name('delWeb');
Route::post('/admin/{id}/categories/', [AdminController::class, 'storeCat'])
->name('newCat');
Route::delete('/admin/{id}/categories/', [AdminController::class, 'destroyCat'])
->name('delCat');
Route::post('/admin/{id}/links/', [AdminController::class, 'storeLink'])
->name('newLink');
Route::delete('/admin/{id}/links/', [AdminController::class, 'destroyLink'])
->name('delLink');
});
替换此代码
<form action="{{ route('delLink', Auth()->user()) }}" method="POST">
@csrf
@method('DELETE')
<table class="table-auto w-full">
<tr class="bg-slate-300">
<td class="p-4"><strong>Url</strong></td>
<td class="p-4"><strong>Filter selector</strong></td>
<td class="p-4"><strong>Website</strong></td>
<td class="p-4"><strong>Categorie</strong></td>
<td></td>
<td></td>
</tr>
@foreach ($links as $link)
<tr data-id="{{ $link->id }}" class="">
<td class="p-4 border-r">{{ $link->url }}</td>
<td class="p-4 border-r">{{ $link->main_filter_selector }}</td>
<td class="p-4 border-r">{{ $link->website->title }}</td>
<td class="p-4 border-r">{{ $link->category->title }}</td>
<td class="p-4 border-r"><button class="w-fit bg-green-400 h-fit p-2 rounded hover:bg-green-600 hover:text-white block m-auto" type="submit">Scrape</button></td>
<td class="p-4"><button class="w-fit h-full p-2 bg-red-400 h-fit rounded hover:bg-red-600 hover:text-white block m-auto" type="submit">Verwijderen</button>
</td>
</tr>
@endforeach
</table>
</form>
有了这个
<table class="table-auto w-full">
<tr class="bg-slate-300">
<td class="p-4"><strong>Url</strong></td>
<td class="p-4"><strong>Filter selector</strong></td>
<td class="p-4"><strong>Website</strong></td>
<td class="p-4"><strong>Categorie</strong></td>
<td></td>
<td></td>
</tr>
@foreach ($links as $link)
<tr data-id="{{ $link->id }}" class="">
<td class="p-4 border-r">{{ $link->url }}</td>
<td class="p-4 border-r">{{ $link->main_filter_selector }}</td>
<td class="p-4 border-r">{{ $link->website->title }}</td>
<td class="p-4 border-r">{{ $link->category->title }}</td>
<td class="p-4 border-r"><button class="w-fit bg-green-400 h-fit p-2 rounded hover:bg-green-600 hover:text-white block m-auto" type="submit">Scrape</button></td>
<td class="p-4">
<form action="{{ route('delLink', $link->id) }}" method="POST">
@csrf
@method('DELETE')
<button class="w-fit h-full p-2 bg-red-400 h-fit rounded hover:bg-red-600 hover:text-white block m-auto" type="submit">Verwijderen</button>
</form>
</td>
</tr>
@endforeach
</table>
你的destroyLink()
方法应该包含这个
public function destroyLink(Request $request)
{
$id = $request->id;
$link = Link::find($id);
$link->delete();
return back();
}