Cara Membuat Log Aktivitas User di Laravel Tanpa Plugin

Share:
Cara Membuat Log Aktivitas User di Laravel Tanpa Plugin
Halo semuanya, kembali lagi di sahretech. Pada kesempatan kali ini kita akan belajar cara menyimpan aktivitas user pada laravel, jadi apapun yang dilakukan user akan direkam. Penasaran?, ayo kita coba tipsnya di bawah ini.








Cara Menyimpan Log Aktivitas Tanpa Plugin di Laravel

1. Siapkan project laravel baru atau yang sudah ada, disarankan menggunakan laravel versi terbaru. Untuk penggunaan model, route, controller dan view tidak akan dijelaskan disini. Hal ini ditujukan untuk mempercepat penulisan dan memudahkan pembaca langsung ke inti pembahasan

2. Jangan lupa melakukan setting pada file .env. Silahkan sesuaikan dengan database yang kalian pakai masing-masing.

3. Jalankan perintah berikut ini untuk membuat migration. php artisan make:migration create_log_activity_table. Lalu ikuti seperti di bawah ini, lalu jalankan perintah php artisan migrate untuk membuat tabel di dalam phpmyadmin

  
<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Schema; class CreateLogActivitiesTable extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::create('log_activities', function (Blueprint $table) { $table->id(); $table->string('subject'); $table->string('url'); $table->string('method'); $table->string('agent')->nullable(); $table->string('user_id')->nullable(); $table->timestamps(); }); } /** * Reverse the migrations. * * @return void */ public function down() { Schema::dropIfExists('log_activities'); } }



4. Buatlah sebuah model dengan nama LogActivity.php dengan menjalankan perintah berikut ini php artisan make:model LogActivity. Lalu ikuti scriptnya seperti berikut

<?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class LogActivity extends Model { use HasFactory; //script di bawah ini ditambahkan jika //tidak mengikuti naming convention dari laravel protected $table = 'log_activities'; protected $guarded = ['id']; }


5.
Selanjutnya kita akan membuat sebuah helper, yang mana helper ini akan kita gunakan di setiap controller yang membutuhkan. Buatlah sebuah folder Helpers di dalam folder app, lalu buatlah sebiah file helper dengan nama LogActivity.php. Lalu ikuti scriptnya seperti di bawah ini

<?php namespace App\Helpers; use Request; use App\Models\LogActivity as LogActivityModel; class LogActivity { public static function addToLog($subject) { $log = []; $log['subject'] = $subject; $log['url'] = Request::fullUrl(); $log['method'] = Request::method(); $log['agent'] = Request::header('user-agent'); $log['user_id'] = auth()->check() ? auth()->user()->id : 1; LogActivityModel::create($log); } public static function logActivityLists() { return LogActivityModel::latest()->get(); } }



6.
Pada langkah ini kita akan mendaftarkan helper yang kita buat menjadi façade dan memudahkan pemanggilan di controller nantinya. Silahkan buka config/app.php. Lalu tambahkan script di dalam aliases
  
.... 'aliases' => [ .... 'LogActivity' => App\Helpers\LogActivity::class, ]



7. Buatlah dua route baru di dalam file web.php, seperti di bawab ini
  
Route::get('add-to-log', 'App\Http\Controllers\LogActivityController@myTestAddToLog'); Route::get('log-activity', 'App\Http\Controllers\LogActivityController@logActivity');



8. Buatlah sebuah controller baru dengan menjalankan perintah berikut php artisan make:controller LogActivityController lalu ikuti scriptnya seperti berikut ini 

<?php namespace App\Http\Controllers; use Illuminate\Http\Request; class LogActivityController extends Controller { public function myTestAddToLog() { //kalian bisa melakukan apapun //seperti create, read, update dan delete sebelum fungsi log di bawah ini dijalankan \LogActivity::addToLog('My Testing Add To Log.'); dd('log insert successfully.'); } /** * Show the application dashboard. * * @return \Illuminate\Http\Response */ public function logActivity() { //kalian bisa melakukan apapun //seperti create, read, update dan delete sebelum fungsi log di bawah ini dijalankan $logs = \LogActivity::logActivityLists(); return view('log_activity', compact('logs')); } }



9. Buatlah sebuah file view untuk melihat daftar log aktivitas yang telah disimpan dengan nama log_activity.blade.php. Lalu ikuti scriptnya seperti script di bawah ini.

<!DOCTYPE html> <html> <head> <title>Log Activity Lists</title> <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/twitter-bootstrap/3.3.7/css/bootstrap.min.css" /> </head> <body> <div class="container"> <h1>Log Activity Lists</h1> <table class="table table-bordered"> <tr> <th>No</th> <th>Subject</th> <th>URL</th> <th>Method</th> <th width="300px">User Agent</th> <th>User Id</th> <th>Action</th> </tr> @if($logs->count()) @foreach($logs as $key => $log) <tr> <td>{{ ++$key }}</td> <td>{{ $log->subject }}</td> <td class="text-success">{{ $log->url }}</td> <td><label class="label label-info">{{ $log->method }}</label></td> <td class="text-danger">{{ $log->agent }}</td> <td>{{ $log->user_id }}</td> <td><button class="btn btn-danger btn-sm">Delete</button></td> </tr> @endforeach @endif </table> </div> </body> </html>






Ok, semua tahapan sudah kita kerjakan. Selanjutnya kita bisa melakukan uji coba. Jalankan php artisan serve. Lalu buka route localhost:8000/add-to-log untuk menambahkan log baru, dan buka route localhost:8000/log-activity untuk melihat log yang telah disimpan.

Tampilan Akhir
Tampilan Akhir



Bagaimana?, apakah tutorial ini cukup mudah dan membantu kalian?. Sekarang kalian bisa mengimplementasikan tutorial ini di real project yang kalian kerjakan. Penerapan pada project yang sudah ada sangat mudah sekali. Kalian tinggal menambahkan LogActivity::addToLog('your log activity');. Pada setiap function controller yang ada.

Jika ada kendala tentang tutorial di atas silahkan tanya langsung di kolom komentar atau fanspage sahretech. Sekian tutorial kali ini tentang cara menyimpan log activity user di laravel tanpa plugin. Semoga bermanfaat, sekian dan terima kasih.





No comments

Jangan lupa kasih komentar ya!. Karena komentar kalian membantu kami menyediakan informasi yang lebih baik

Tidak boleh menyertakan link atau promosi produk saat berkomentar. Komentar tidak akan ditampilkan. Hubungi 081271449921(WA) untuk dapat menyertakan link dan promosi