ما در این مقاله یک روش برای ثبت آخرین تاریخ و آخرین IP ورود کاربر به پروژه های طراحی سایت در لاراول را به شما نشان خواهیم داد. ابتدا یک database migration به شکل زیر در ست می کنیم:
php artisan make:migration add_login_fields_to_users_table
و فیلدهای زیر را اضافه می کنیم:
class AddLoginFieldsToUsersTable extends Migration
{
public function up()
{
Schema::table('users', function (Blueprint $table) {
$table->datetime('last_login_at')->nullable();
$table->string('last_login_ip')->nullable();
});
}
// ...
همچنین شما نیاز دارید فیلدهای زیر را به مدل app/User.php اضافه کنید:
class User extends Authenticatable
{
protected $fillable = [
'email',
'password',
'name',
'last_login_at',
'last_login_ip',
];
// ...
در لاراول متدی به نام authenticated در AuthenticatesUsers trait وجود دارد:
/**
* The user has been authenticated.
*
* @param \Illuminate\Http\Request $request
* @param mixed $user
* @return mixed
*/
protected function authenticated(Request $request, $user)
{
//
}
این trait method خالی است بنابراین در LoginController کدهای زیر را وارد می کنیم:
function authenticated(Request $request, $user)
{
$user->update([
'last_login_at' => Carbon::now()->toDateTimeString(),
'last_login_ip' => $request->getClientIp()
]);
}
بعد از ثبت اطلاعات در جدول users رکوردها را به شکل زیر خواهید دید:
