| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950 |
- <?php
- namespace App\Http\Controllers\Admin;
- /*
- * ParserLinkController — управление ссылками для парсера в административной панели.
- *
- * Маршруты: GET /admin/parser-links (список/форма), POST /admin/parser-links (сохранение)
- * Логика: при сохранении удаляет все старые записи и вставляет новые (полная замена списка).
- * Создан: 2026-06-06
- */
- use App\Http\Controllers\Controller;
- use App\Models\ParserLink;
- use Illuminate\Http\RedirectResponse;
- use Illuminate\Http\Request;
- use Illuminate\View\View;
- class ParserLinkController extends Controller
- {
- // Показывает страницу со списком ссылок для парсера
- public function index(): View
- {
- $links = ParserLink::orderBy('sort_order')->orderBy('id')->get();
- return view('admin.parser_links.index', compact('links'));
- }
- // Сохраняет список ссылок: удаляет старые, вставляет новые
- public function update(Request $request): RedirectResponse
- {
- $request->validate([
- 'urls' => 'nullable|array',
- 'urls.*' => 'nullable|url|max:500',
- ]);
- $urls = collect($request->input('urls', []))
- ->filter(fn ($u) => filled($u))
- ->values();
- ParserLink::truncate();
- $urls->each(function ($url, $i) {
- ParserLink::create(['url' => $url, 'sort_order' => $i]);
- });
- return redirect()->route('admin.parser-links.index')
- ->with('success', 'Ссылки для парсера сохранены.');
- }
- }
|