/** * Run the database seeds. * * @return void */ public function run() { $cities = []; $cities[] = City::where('geoname_id', 658225)->first(); $cities[] = City::where('geoname_id', 649360)->first(); $cities[] = City::where('geoname_id', 660158)->first(); $cities[] = City::where('geoname_id', 632453)->first(); $cities[] = City::where('geoname_id', 634963)->first(); $images = Image::all(); $users = User::all(); $types = Place::types(); for ($i = 0; $i < 100; $i++) { $city = $cities[rand(0, count($cities) - 1)]; $image = $images[$i % count($images)]; $user = $users[rand(0, count($users) - 1)]; $type = $types[rand(0, count($types) - 1)]; $id = DB::table('place')->insertGetId(['city_id' => $city->id, 'image_id' => $image->id, 'user_id' => $user->id, 'type' => $type, 'address' => 'Servinkuja 1 B 19', 'latitude' => $city->latitude + rand(0, 1000) / 20000 - 0.025, 'longitude' => $city->longitude + rand(0, 1000) / 20000 - 0.025, 'phone' => '+3581234567', 'email' => '*****@*****.**', 'website' => 'http://www.example.com/', 'facebook' => 'https://www.facebook.com/', 'google_plus' => 'https://plus.google.com/', 'created_at' => Carbon::now()->format('Y-m-d H:i:s'), 'updated_at' => Carbon::now()->format('Y-m-d H:i:s')]); DB::table('place_translation')->insert(['place_id' => $id, 'locale' => 'en', 'name' => 'Test ' . $type . ' ' . $id, 'content' => file_get_contents('http://loripsum.net/api'), 'created_at' => Carbon::now()->format('Y-m-d H:i:s'), 'updated_at' => Carbon::now()->format('Y-m-d H:i:s')]); } }
/** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @param int $id * @return \Illuminate\Http\Response */ public function update(Request $request, $id) { $place = Place::find($id); if (empty($place)) { abort(404); } if ($request->user()->cannot('edit-place', $place)) { abort(403); } if ($request->input('lock')) { if ($place->lock()) { return; // 200 OK } else { abort(423); // 423 Locked } } // Validate data $this->validate($request, ['type' => 'string|in:' . implode(',', Place::types()), 'image_id' => 'integer|exists:image,id', 'gallery_image_ids.*' => 'integer|exists:image,id', 'city_id' => 'integer|exists:city,id', 'address' => 'string|max:255', 'latitude' => 'numeric', 'longitude' => 'numeric', 'tag_ids.*' => 'integer|exists:tag,id', 'email' => 'email|max:255', 'phone' => 'string|max:255', 'website' => 'url|max:255', 'facebook' => 'url|max:255', 'translations.*.name' => 'string|max:255', 'translations.*.content' => 'string']); if ($request->has('user_id')) { if ($request->user()->can('transfer-place', $place)) { $place->transfer($request->input('user_id')); } else { abort(403); } } $place->fill($request->all()); $place->save(); if ($request->has('translations')) { foreach ($request->input('translations') as $locale => $texts) { if (!Languages::has($locale)) { continue; } $translation = PlaceTranslation::firstOrCreate(['place_id' => $id, 'locale' => $locale]); $translation->update(app_array_filter($texts, ['name', 'content'])); } } }