* @created 2022-08-08 15:07:33 * @modified 2022-08-08 15:07:33 */ namespace Beike\Admin\Http\Controllers; use Beike\Models\Page; use Beike\Repositories\ProductRepo; use Beike\Shop\Http\Resources\PageDetail; use Illuminate\Http\Request; use Beike\Admin\Repositories\PageRepo; class PagesController { public function index() { $pageList = PageRepo::getList(); $data = [ 'pages' => $pageList, 'pages_format' => PageDetail::collection($pageList)->jsonSerialize() ]; return view('admin::pages.pages.index', $data); } public function create() { return view('admin::pages.pages.form', ['page' => new Page()]); } public function edit(Request $request, int $pageId) { $data = [ 'page' => PageRepo::findByPageId($pageId), 'descriptions' => PageRepo::getDescriptionsByLocale($pageId), ]; return view('admin::pages.pages.form', $data); } public function store(Request $request) { $requestData = $request->all(); PageRepo::createOrUpdate($requestData); return redirect()->to(admin_route('pages.index')); } public function update(Request $request, int $pageId) { $requestData = $request->all(); $requestData['id'] = $pageId; $page = PageRepo::createOrUpdate($requestData); return redirect()->to(admin_route('pages.index')); } public function destroy(Request $request, int $pageId) { PageRepo::deleteById($pageId); return redirect()->to(admin_route('pages.index')); } /** * 搜索页面标题自动完成 * @param Request $request * @return array */ public function autocomplete(Request $request): array { $products = PageRepo::autocomplete($request->get('name') ?? ''); return json_success('获取成功!', $products); } /** * 获取单页名称 * @param Page $page * @return array */ public function name(Page $page): array { $name = $page->description->title ?? ''; return json_success('获取成功', $name); } }