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 pembahasan2. 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
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
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
<?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'];
}
<?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();
}
}
....
'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.
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.
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.
<!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 |
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