제 상황은 매우 어렵습니다. 스크래퍼를 이용해서 출생목록 클론을 만들고 있는데 경험이 없어서 코딩하는데 어려움을 겪고 있습니다. 크롤링해야 할 링크와 연결될 사이트 및 카테고리를 지정할 수 있는 사이트, 카테고리 및 링크 양식을 삽입하기 위한 여러 양식이 있는 관리 페이지를 성공적으로 만들었습니다. 그런데 이런걸 추가하는건 괜찮은데 삭제하는건 안되는거..
내 사이트, 카테고리 및 링크는 각 요소에 대한 가져오기 및 삭제 버튼과 함께 내 관리 페이지에 표시됩니다. 행의 마지막 항목을 삭제하면 첫 번째 요소가 삭제됩니다. 다른 것을 삭제하고 싶을 때 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]); }; } }
P粉4035496162024-01-29 16:41:58
이 코드를 교체하세요
으아악이걸로
으아악귀하의 destroyLink()
메소드에는 다음이 포함되어야 합니다