<?php use Illuminate\Database\Migrations\Migration; use Illuminate\Database\Schema\Blueprint; use Illuminate\Support\Facades\Auth; use Illuminate\Support\Facades\DB; use Illuminate\Support\Facades\Schema; class AddUserTableRatingColumn extends Migration { /** * Run the migrations. * * @return void */ public function up() { Schema::table('users', function ($table) { if (!Schema::hasColumn('users', 'total_rating')) { $table->integer('total_rating')->default(0);; } if (!Schema::hasColumn('users', 'language_rtl')) { $table->boolean('language_rtl')->default(false);; } }); $users = \App\User::all(); foreach ($users as $user) { $courses = \Modules\CourseSetting\Entities\Course::where('user_id', $user->id)->get(); $rating = 0; foreach ($courses as $course) { $rating = $rating + $course->total_rating; } if (count($courses) != 0) { $avg = ($rating / count($courses)); } else { $avg = 0; } $user->language_rtl = $user->userLanguage->rtl; $user->total_rating = $avg; $user->save(); } DB::statement('ALTER TABLE `users` CHANGE `username` `username` VARCHAR(100) NULL'); } /** * Reverse the migrations. * * @return void */ public function down() { // } }