https://fahmidasclassroom.com/laravel-7-crud-using-datatables/
1. Install yajra datatables
$ composer require yajra/laravel-datatables-oracle:"~9.0"
2. Daftarkan provider dan facade pada file "config/app.php"
'providers' => [
....,Yajra\DataTables\DataTablesServiceProvider::class,
]
'aliases' => [
'DataTables' => Yajra\DataTables\Facades\DataTables::class,
]
3. Publish Vendor
$ php artisan vendor:publish --provider="Yajra\DataTables\DataTablesServiceProvider"
4. Buat Model & Migration
$ php artisan make:model Product -m
edit file "app\database\migrations\2020_12_24_204248_create_banners_table.php"
Schema::create('banners', function (Blueprint $table) {$table->id();//addcode$table->string('title');$table->text('img');$table->boolean('status');//encode$table->timestamps();});
edit file "app\Models\Product.php
<?phpnamespace App\Models;use Illuminate\Database\Eloquent\Factories\HasFactory;use Illuminate\Database\Eloquent\Model;class Banner extends Model{use HasFactory;protected $fillable = ['title','img','status'];}
4. Buat Controller
$ php artisan make:controller UserController -r
5. Buka UserController di folder "app/Http/Controllers" edit code menjadi seperti di bawah.
<?php
namespace App\Http\Controllers;
use Illuminate\Http\Request;
//addcode
use App\Models\User;
use DataTables;
use Redirect,Response;
//endcode
class UserController extends Controller
{
public function index()
{
//addcode
if ($request->ajax()) {
$data = User::latest()->get();
return Datatables::of($data)
->addIndexColumn()
->addColumn('action', function($row){
$action =
'<a class="btn btn-info" id="show-user" data-toggle="modal" data-id='.$row->id.'>Show</a>
<a class="btn btn-success" id="edit-user" data-toggle="modal" data-id='.$row->id.'>Edit </a>
<meta name="csrf-token" content="{{ csrf_token() }}">
<a id="delete-user" data-id='.$row->id.' class="btn btn-danger delete-user">Delete</a>';
return $action;
})
->rawColumns(['action'])
->make(true);
}
return view('users');
//endcode
}
public function create()
{
//addcode
return view('menu.banner.create');
//endcode
}
public function store(Request $request)
{
//addcode
$request->validate([
'title' => 'required',
'img' => 'required'
]);
$imgName = $request->title.time()."_".$request->file('img')->GetClientOriginalName();
Banner::create([
'img' => $imgName,
'title' => $request->title,
'status' => $request->status
]);
$msg = 'Data Berhasil Di Tambahkan';
return redirect()->route('banner.index')->with('success',$msg);
}
public function show($id)
{
//
}
public function edit($id)
{
//
}
public function update(Request $request, $id)
{
//
}
public function destroy($id)
{
//
}
}
Tidak ada komentar:
Posting Komentar