Selasa, 01 Desember 2020

DATA TABLES YAJRA

 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

    <?php
    namespace 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

flutter firebase notification