📡 You're offline — showing cached content
New version available!
Quick Access
Tutorials Laravel Framework Controllers

Controllers

6 min read Quiz at the end
Write controllers that validate input, call models, and return views or JSON responses.

Controllers

php artisan make:controller PostController --resource

namespace AppHttpControllers;
use AppModelsPost;
use IlluminateHttpRequest;

class PostController extends Controller {
    public function index() {
        $posts = Post::latest()->paginate(10);
        return view("posts.index", compact("posts"));
    }

    public function store(Request $request) {
        $data = $request->validate([
            "title"   => "required|max:255",
            "body"    => "required",
            "slug"    => "required|unique:posts",
        ]);
        $post = Post::create($data);
        return redirect()->route("posts.show", $post)
                         ->with("success", "Post created!");
    }

    public function show(Post $post) {  // auto route model binding!
        return view("posts.show", compact("post"));
    }

    public function destroy(Post $post) {
        $post->delete();
        return redirect()->route("posts.index");
    }
}