Пример #1
0
 /**
  * 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')]);
     }
 }
Пример #2
0
 /**
  * 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']));
         }
     }
 }