/** * Run the database seeds. * * @return void */ public function run() { Model::unguard(); $tr = new TranslateClient('en', 'ar'); $countries = json_decode(File::get(__DIR__ . "/u_countries.json"), true); Country::whereNotNull('id')->delete(); City::whereNotNull('id')->delete(); State::whereNotNull('id')->delete(); foreach ($countries as $country) { $name = $tr->translate($country['name']); //$country['name']; $newCountry = Country::create(['name' => $name, 'iso_3166_2' => $country['iso_3166_2'], 'calling_code' => $country['calling_code']]); } $countries = Country::get(); foreach ($countries as $country) { $new_cities = []; $new_states = []; $states = DB::connection('tests')->table('states')->select('states.*')->join('countries', function ($j) use($country) { $j->on('countries.id', '=', 'states.country_id')->where('countries.sortname', '=', $country->iso_3166_2); })->get(); foreach ($states as $state) { $new_cities[] = ['id' => $state->id, 'name' => $tr->translate($state->name), 'country_id' => $country->id]; $cities = DB::connection('tests')->table('cities')->select('cities.*')->join('states', function ($j) use($state) { $j->on('states.id', '=', 'cities.state_id')->where('states.id', '=', $state->id); })->get(); foreach ($cities as $city) { $new_states[] = ['id' => $city->id, 'name' => $tr->translate($city->name), 'city_id' => $state->id]; } } DB::table('lists_cities')->insert($new_cities); DB::table('lists_states')->insert($new_states); } }
/** * Run the database seeds. * * @return void */ public function run() { Model::unguard(); $countries = json_decode(File::get(__DIR__ . "/countries.json"), true); $cities = ['OM' => [['name' => 'مسقط', 'states' => [['name' => 'الخوير']]], ['name' => 'البريمي'], ['name' => 'الباطنة شمال'], ['name' => 'الباطنة جنوب'], ['name' => 'الظاهرة'], ['name' => 'الداخلية '], ['name' => 'الشرقية شمال'], ['name' => 'الشرقية جنوب'], ['name' => 'الوسطى'], ['name' => 'ظفار'], ['name' => 'مسندم']]]; $permissions = [['name' => 'اضافة دول', 'slug' => 'create.countries', 'module' => 'lists'], ['name' => 'تعدل دول', 'slug' => 'edit.countries', 'module' => 'lists'], ['name' => 'حذف دول', 'slug' => 'delete.countries', 'module' => 'lists'], ['name' => 'مشاهدة الدولة', 'slug' => 'view.countries', 'module' => 'lists'], ['name' => 'اضافة مدن', 'slug' => 'create.cities', 'module' => 'lists'], ['name' => 'تعدل مدن', 'slug' => 'edit.cities', 'module' => 'lists'], ['name' => 'حذف مدن', 'slug' => 'delete.cities', 'module' => 'lists'], ['name' => 'مشاهدة المدن', 'slug' => 'view.cities', 'module' => 'lists'], ['name' => 'اضافة محافظة', 'slug' => 'create.states', 'module' => 'lists'], ['name' => 'تعدل محافظة', 'slug' => 'edit.states', 'module' => 'lists'], ['name' => 'حذف محافظة', 'slug' => 'delete.states', 'module' => 'lists'], ['name' => 'مشاهدة المحافظات', 'slug' => 'view.states', 'module' => 'lists']]; $slugs = array_map(function ($ar) { return $ar['slug']; }, $permissions); Permission::whereIn('slug', $slugs)->delete(); Country::whereNotNull('id')->delete(); City::whereNotNull('id')->delete(); State::whereNotNull('id')->delete(); $users = User::all(); foreach ($permissions as $permission) { $perm = Permission::create($permission); foreach ($users as $user) { $user->attachPermission($perm); } } $tr = new TranslateClient('en', 'ar'); foreach ($countries as $country) { $name = $country['name']; //$tr->translate($country['name']); $newCountry = Country::create(['name' => $name, 'calling_code' => $country['calling_code']]); if (isset($cities[$country['iso_3166_2']])) { foreach ($cities[$country['iso_3166_2']] as $city) { $newCity = City::create(['name' => $city['name'], 'country_id' => $newCountry->id]); if (isset($city['states'])) { foreach ($city['states'] as $state) { State::create(['name' => $state['name'], 'city_id' => $newCity->id]); } } } } } }