Writing::orderBy('created_at', 'desc')->paginate(20) ]); } /** * Show the form for creating a new resource. */ public function create() { return view('writings.create'); } /** * Store a newly created resource in storage. */ public function store(Request $req) { $validated = $req->validate([ 'title' => 'required|min:3|max:255', 'content' => 'required|min:10', ]); $writing = Writing::create([ 'title' => $validated['title'], 'content' => $validated['content'], 'user_id' => Auth::id(), ]); return redirect()->route('w.show', $writing) ->with('success', 'Writing created successfully!'); } /** * Display the specified resource. */ public function show($id) { $writing = Writing::with('user')->findOrFail($id); return view('writings.show', [ 'writing' => $writing ]); } /** * Show the form for editing the specified resource. */ public function edit($id) { $writing = Writing::findOrFail($id); $this->authorize('update', $writing); return view('writings.edit', [ 'writing' => $writing ]); } /** * Update the specified resource in storage. */ public function update(Request $request, Writing $writing) { $this->authorize('update', $writing); $validated = $request->validate([ 'title' => 'required|min:3|max:255', 'content' => 'required|min:10', ]); $writing->update($validated); return redirect()->route('w.show', $writing) ->with('success', 'Writing updated successfully!'); } /** * Remove the specified resource from storage. */ public function destroy(Writing $writing) { $this->authorize('delete', $writing); $writing->delete(); return redirect()->route('w.index') ->with('success', 'Writing deleted.'); } }