<?php namespace App\Http\Controllers; use Illuminate\Http\Request; use function dd; use Illuminate\Support\Facades\Validator; use Illuminate\Support\Facades\Redirect; use Illuminate\Support\Facades\Session; use Illuminate\Support\Facades\URL; use App\Models\Post; class NewsController extends Controller { /** * Display a listing of the resource. * * @return \Illuminate\Http\Response */ public function index() { $news = Post::orderBy('created_at', 'desc')->paginate(6); Session::flash('prev-url', URL::full()); //$data = ['news' => $news]; //return view('pages.news')->with($data); //return view('pages.news')->with('news', $news); return view('pages.news', compact('news')); } /** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { //$data = Post::orderBy('created_at', 'desc')->get(); return view('pages.news-admin');//, compact('data')); } /** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { $rules = [ 'title' => 'required', 'text' => 'required' ]; $messages = [ 'sign.required' => 'You need to provide a title!', 'text.required' => 'Your post needs to have some information!' ]; $validator = Validator::make($request->all(), $rules, $messages); if ($validator->fails()) { return Redirect::back() ->withErrors($validator) ->withInput(); } $post = new Post(); $post->title = $request->title; $post->author = $request->author; $post->text = $request->text; $post->saveOrFail(); return Redirect::back()->with('status', "New post added."); } /** * Display the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function show($id) { // } /** * Show the form for editing the specified resource. * * @param int $id * @return \Illuminate\Http\Response */ public function edit($id) { $data = Post::findOrFail($id); Session::keep('prev-url'); return view('pages.editpost', compact('data')); } /** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { if ($request->input('submit') == 'Edit post') { $rules = [ 'title' => 'required', 'text' => 'required' ]; $messages = [ 'sign.required' => 'You need to provide a title!', 'text.required' => 'Your post needs to have some information!' ]; $validator = Validator::make($request->all(), $rules, $messages); if ($validator->fails()) { return Redirect::back() ->withErrors($validator) ->withInput(); } $post = Post::findOrFail($id); $post->title = $request->title; $post->author = $request->author; $post->text = $request->text; $post->saveOrFail(); return Redirect::to(Session::get('prev-url', route('news')))->with('status', "Post edited."); } else return Redirect::to(Session::get('prev-url', route('news'))); } /** * Remove the specified resource from storage. * * @param int $id * @return \Illuminate\Http\Response */ public function destroy($id) { $post = Post::findOrFail($id); $title = $post->title; $post->delete(); return Redirect::back()->with('status', "Post \"$title\" deleted."); } }