✔ Laravel 5.5 Crud Tutorial With Example From Scratch Resource Controller
Laravel 5.5 tutorial for beginners : this tutorial will show you how to create simple laravel apps CRUD (create, read, update, delete) with resource controller in laravel 5.5.
Full source Code Laravel 5.5 Crud Applications
Modife your config/app.php files
Next, create new view (Master, Index, Edit, Show, Create, Form)
More Laravel Video Tutorial
Sumber http://scqq.blogspot.com
Video tutorial How to create CRUD Operations in Laravel 5.5
Full source Code Laravel 5.5 Crud Applications
Create new Laravel Project
composer create-project --prefer-dist laravel/laravel crudresourcecontroller
Create new Migration
php artisan make:migration create_posts_table
Post Migration
Schema::create('posts', function (Blueprint $table) { $table->increments('id'); $table->string('title'); $table->text('body'); $table->timestamps(); });
Create new Model and new Controller
php artisan make:model Post php artisan make:controller PostController --resource
Post Model
protected $table = 'posts'; protected $fillable = ['title','body'];
PostController
<?php namespace AppHttpControllers; use IlluminateHttpRequest; use AppPost; class PostController extends Controller { /** * Display a listing of the resource. * * @return IlluminateHttpResponse */ public function index() { $posts = Post::latest()->paginate(5); return view('posts.index', compact('posts'))->with('i',(request()->input('page',1) -1) *5); } /** * Show the form for creating a new resource. * * @return IlluminateHttpResponse */ public function create() { return view('posts.create'); } /** * Store a newly created resource in storage. * * @param IlluminateHttpRequest $request * @return IlluminateHttpResponse */ public function store(Request $request) { request()->validate([ 'title' => 'required', 'body' => 'required', ]); Post::create($request->all()); return redirect()->route('posts.index')->with('success','Post created successfully'); } /** * Display the specified resource. * * @param int $id * @return IlluminateHttpResponse */ public function show($id) { $post = Post::find($id); return view('posts.show', compact('post')); } /** * Show the form for editing the specified resource. * * @param int $id * @return IlluminateHttpResponse */ public function edit($id) { $post = Post::find($id); return view('posts.edit', compact('post')); } /** * Update the specified resource in storage. * * @param IlluminateHttpRequest $request * @param int $id * @return IlluminateHttpResponse */ public function update(Request $request, $id) { request()->validate([ 'title' => 'required', 'body' => 'required', ]); Post::find($id)->update($request->all()); return redirect()->route('posts.index')->with('success','Post updated successfully'); } /** * Remove the specified resource from storage. * * @param int $id * @return IlluminateHttpResponse */ public function destroy($id) { Post::find($id)->delete(); return redirect()->route('posts.index')->with('success','Post deleted successfully'); } }
Route
Route::resource('posts','PostController');
Install Laravel Collective (Html and Form)
composer require laravelcollective/html
Modife your config/app.php files
'providers' => [ .... CollectiveHtmlHtmlServiceProvider::class, ], 'aliases' [ .... 'Form' => CollectiveHtmlFormFacade::class, 'Html' => CollectiveHtmlHtmlFacade::class, ],
Next, create new view (Master, Index, Edit, Show, Create, Form)
Master.blade.php
<!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8"> <meta http-equiv="X-UA-Compatible" content="IE=edge"> <meta name="viewport" content="width=device-width, initial-scale=1"> <title>Simple Crud with Resource Controller</title> <!-- Bootstrap --> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css"> <!-- HTML5 Shim and Respond.js IE8 support of HTML5 elements and media queries --> <!-- WARNING: Respond.js doesn't work if you view the page via file:// --> <!--[if lt IE 9]> <script src="https://oss.maxcdn.com/libs/html5shiv/3.7.2/html5shiv.js"></script> <script src="https://oss.maxcdn.com/libs/respond.js/1.4.2/respond.min.js"></script> <![endif]--> </head> <body> <div class="container"> @yield('content') </div> <!-- jQuery (necessary for Bootstrap's JavaScript plugins) --> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> <!-- Include all compiled plugins (below), or include individual files as needed --> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script> </body> </html>
Index.blade.php
@extends('posts.master') @section('content') <div class="row"> <div class="col-lg-12"> <h3>Simple laravel CRUD with resource controller</h3> </div> </div> <div class="row"> <div class="col-sm-12"> <div class="pull-right"> <a class="btn btn-xs btn-success" href="{{ route('posts.create') }}">Create New Post</a> </div> </div> </div> @if ($message = Session::get('success')) <div class="alert alert-success"> <p>{{ $message }}</p> </div> @endif <table class="table table-bordered"> <tr> <th>No.</th> <th>Title</th> <th>Body</th> <th width="300px">Actions</th> </tr> @foreach ($posts as $post) <tr> <td>{{ ++$i }}</td> <td>{{ $post->title }}</td> <td>{{ $post->body }}</td> <td> <a class="btn btn-xs btn-info" href="{{ route('posts.show', $post->id) }}">Show</a> <a class="btn btn-xs btn-primary" href="{{ route('posts.edit', $post->id) }}">Edit</a> {!! Form::open(['method' => 'DELETE', 'route'=>['posts.destroy', $post->id], 'style'=> 'display:inline']) !!} {!! Form::submit('Delete',['class'=> 'btn btn-xs btn-danger']) !!} {!! Form::close() !!} </td> </tr> @endforeach </table> {!! $posts->links() !!} @endsection
Form.blade.php
<div class="row"> <div class="col-xs-12"> <div class="form-group"> <strong>Title : </strong> {!! Form::text('title', null, ['placeholder'=>'Title','class'=>'form-control']) !!} </div> </div> <div class="col-xs-12"> <div class="form-group"> <strong>Body : </strong> {!! Form::textarea('body', null, ['placeholder'=>'Body','class'=>'form-control','style'=>'height:150px']) !!} </div> </div> <div class="col-xs-12"> <a class="btn btn-xs btn-success" href="{{ route('posts.index') }}">Back</a> <button type="submit" class="btn btn-xs btn-primary" name="button">Submit</button> </div> </div>
Create.blade.php
@extends('posts.master') @section('content') <div class="row"> <div class="col-lg-12"> <div class="pull-left"> <h3>Add New Post</h3> </div> </div> </div> @if(count($errors) > 0) <div class="alert alert-danger"> <strong>Whooops!! </strong> There were some problems with your input.<br> <ul> @foreach ($errors->all() as $error) <li>{{ $error }}</li> @endforeach </ul> </div> @endif {!! Form::open(['route' => 'posts.store', 'method' => 'POST']) !!} @include('posts.form') {!! Form::close() !!} @endsection
Show.blade.php
@extends('posts.master') @section('content') <div class="row"> <div class="col-lg-12"> <div class="pull-left"> <h3>Show Post </h3> <a class="btn btn-xs btn-primary" href="{{ route('posts.index') }}">Back</a> </div> </div> </div> <div class="row"> <div class="col-xs-12"> <div class="form-group"> <strong>Title : </strong> {{ $post->title }} </div> </div> <div class="col-xs-12"> <div class="form-group"> <strong>Body : </strong> {{ $post->body }} </div> </div> </div> @endsection
Edit.blade.php
@extends('posts.master') @section('content') <div class="row"> <div class="col-lg-12"> <div class="pull-left"> <h3>Edit Post</h3> </div> </div> </div> @if(count($errors) > 0) <div class="alert alert-danger"> <strong>Whooops!! </strong> There were some problems with your input.<br> <ul> @foreach ($errors->all() as $error) <li>{{ $error }}</li> @endforeach </ul> </div> @endif {!! Form::model($post, ['method'=>'PATCH','route'=>['posts.update', $post->id]])!!} @include('posts.form') {!! Form::close() !!} @endsection
More Laravel Video Tutorial
0 Response to "✔ Laravel 5.5 Crud Tutorial With Example From Scratch Resource Controller"
Posting Komentar