Post::latest()->get()]); } public function create(){ return view('posts.edit'); } public function show(Post $post){ return view('posts.show', compact('post')); } public function edit(Post $post){ return view('posts.edit', compact('post')); } public function update(Request $request, Post $post){ $validated = $request->validate([ 'title' => 'required|string|max:255', 'content' => 'required|string', 'published_at' => 'nullable|date', ]); if ($request->filled('published_at')) { $validated['published_at'] = Carbon::parse($request->published_at, $request->timezone) ->setTimezone('UTC'); } $wasPublished = $post->is_published; $post->fill($validated); $post->is_published = $request->has('is_published'); $post->save(); if (!$wasPublished && $post->is_published) { if (!$post->published_at) { $post->update(['published_at' => now()]); } } return redirect() ->route('posts.index') ->with('success', 'Пост успешно обновлен!'); } public function store(Request $request){ $data = $request->validate([ 'title' => 'required', 'content' => 'required', 'published_at' => 'nullable|date' ]); if ($request->filled('published_at')) { $data['published_at'] = Carbon::parse($request->published_at, $request->timezone) ->setTimezone('UTC'); } Post::create($data); return redirect()->route('posts.index')->with('success', 'Готово!'); } public function togglePublish($id){ $post = Post::findOrFail($id); $post->is_published = !$post->is_published; if ($post->is_published){ $post->published_at = now(); } $post->save(); return back(); } }