Example #1
0
 /**
  * Run the database seeds.
  *
  * @return void
  */
 public function run()
 {
     /*
      * Prepare seeding
      */
     $faker = Faker::create();
     if (config('database.default') != 'sqlite') {
         DB::statement('SET FOREIGN_KEY_CHECKS=0');
     }
     Model::unguard();
     /*
      * Seeding users table
      */
     App\User::truncate();
     factory(App\User::class)->create(['name' => 'John Doe', 'email' => '*****@*****.**', 'password' => bcrypt('password')]);
     factory(App\User::class, 9)->create();
     $this->command->info('users table seeded');
     /**
      * Seeding roles table
      */
     Bican\Roles\Models\Role::truncate();
     DB::table('role_user')->truncate();
     $adminRole = Bican\Roles\Models\Role::create(['name' => 'Admin', 'slug' => 'admin']);
     $memberRole = Bican\Roles\Models\Role::create(['name' => 'Member', 'slug' => 'member']);
     App\User::where('email', '!=', '*****@*****.**')->get()->map(function ($user) use($memberRole) {
         $user->attachRole($memberRole);
     });
     App\User::whereEmail('*****@*****.**')->get()->map(function ($user) use($adminRole) {
         $user->attachRole($adminRole);
     });
     $this->command->info('roles table seeded');
     /*
      * Seeding articles table
      */
     App\Article::truncate();
     $users = App\User::all();
     $users->each(function ($user) use($faker) {
         $user->articles()->save(factory(App\Article::class)->make());
         $user->articles()->save(factory(App\Article::class)->make());
     });
     $this->command->info('articles table seeded');
     /**
      * Seeding comments table
      */
     App\Comment::truncate();
     $articles = App\Article::all();
     $articles->each(function ($article) use($faker, $users) {
         $article->comments()->save(factory(App\Comment::class)->make(['author_id' => $faker->randomElement($users->lists('id')->toArray())]));
     });
     $this->command->info('comments table seeded');
     /*
      * Seeding tags table
      */
     App\Tag::truncate();
     DB::table('article_tag')->truncate();
     $rawTags = ['General', 'Laravel', 'Lumen', 'Eloquent', 'Servers', 'Tips', 'Lesson Feedback'];
     foreach ($rawTags as $tag) {
         App\Tag::create(['name' => $tag, 'slug' => str_slug($tag)]);
     }
     $tags = App\Tag::all();
     foreach ($articles as $article) {
         $article->tags()->attach($faker->randomElements($tags->lists('id')->toArray(), $faker->randomElement([1, 2, 3])));
     }
     $this->command->info('tags table seeded');
     /*
      * Seeding attachments table
      */
     App\Attachment::truncate();
     if (!File::isDirectory(attachment_path())) {
         File::deleteDirectory(attachment_path(), true);
     }
     $articles->each(function ($article) use($faker) {
         $article->attachments()->save(factory(App\Attachment::class)->make());
     });
     $files = App\Attachment::lists('name');
     if (!File::isDirectory(attachment_path())) {
         File::makeDirectory(attachment_path(), 777, true);
     }
     foreach ($files as $file) {
         File::put(attachment_path($file), '');
     }
     $this->command->info('attachments table seeded');
     /**
      * Close seeding
      */
     Model::reguard();
     if (config('database.default') != 'sqlite') {
         DB::statement('SET FOREIGN_KEY_CHECKS=1');
     }
 }
Example #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)
 {
     //
     DB::beginTransaction();
     $user_id = \Auth::user()->get()->id;
     $property = Property::find($id);
     $property->user_id = $user_id;
     // $property->customer_id = $request->customer_id;
     // $property->category_id = $request->category_id;
     $property->currency = $request->currency;
     $property->price = $request->price;
     $property->price_label = $request->price_label;
     $property->type = $request->type;
     $property->building_size = $request->building_size;
     $property->land_size = $request->land_size;
     $property->code = $request->code;
     $property->status = $request->status;
     $property->year = $request->year;
     $property->map_latitude = $request->map_latitude;
     $property->map_longitude = $request->map_longitude;
     $property->view_north = $request->view_north;
     $property->view_east = $request->view_east;
     $property->view_west = $request->view_west;
     $property->view_south = $request->view_south;
     $property->is_price_request = $request->is_price_request;
     $property->is_exclusive = $request->is_exclusive;
     $property->owner_name = $request->owner_name;
     $property->owner_email = $request->owner_email;
     $property->owner_phone = $request->owner_phone;
     $property->agent_commission = $request->agent_commission;
     $property->agent_contact = $request->agent_contact;
     $property->agent_meet_date = $request->agent_meet_date;
     $property->agent_inspector = $request->agent_inspector;
     $property->sell_reason = $request->sell_reason;
     $property->sell_note = $request->sell_note;
     $property->other_agent = $request->other_agent;
     $property->orientation = $request->orientation;
     $property->sell_in_furnish = $request->sell_in_furnish;
     $property->lease_period = $request->lease_period;
     $property->lease_year = $request->lease_year;
     // find province, country
     $city = \App\City::where('city_name', $request->city)->first();
     $property->city = $request->city;
     $property->province = $city->province->province_name;
     $property->country = $city->province->country->name;
     $property->save();
     // category
     $category_id = $property->categories[0]->id;
     $propertyTerm = new \App\PropertyTerm();
     $propertyTerm = $propertyTerm->where('property_id', $property->id)->where('term_id', $category_id)->first();
     $propertyTerm->term_id = $request->category;
     $propertyTerm->save();
     // tag
     if ($request->tag) {
         $exist_tags = $property->tags ? $property->tags->lists('id')->toArray() : array();
         // delete tags
         foreach ($exist_tags as $key => $value) {
             if (!in_array($value, $request->tag)) {
                 $property->tags()->detach($value);
             }
         }
         $property->tags()->where('type', 'property_tag')->sync($request->tag, false);
     }
     // locale
     $propertyLocale = $property->propertyLocales()->where('locale', 'en')->first();
     $propertyLocale->title = $request->title;
     $propertyLocale->content = $request->content;
     $propertyLocale->slug = $propertyLocale->slug($request->slug, $property->id);
     $propertyLocale->save();
     // distances
     if ($request->distance_name) {
         $property->propertyMetas()->where('type', 'distance')->delete();
         foreach ($request->distance_name as $key => $value) {
             $propertyMeta = new \App\PropertyMeta();
             $propertyMeta->name = $value;
             $propertyMeta->value = $request->distance_value[$key];
             $propertyMeta->type = 'distance';
             $propertyMeta->property_id = $property->id;
             $propertyMeta->save();
         }
     }
     // documents
     if ($request->document_name) {
         $property->propertyMetas()->where('type', 'document')->delete();
         foreach ($request->document_name as $key => $value) {
             $propertyMeta = new \App\PropertyMeta();
             $propertyMeta->name = $value;
             $propertyMeta->value = 1;
             $propertyMeta->type = 'document';
             $propertyMeta->property_id = $property->id;
             $propertyMeta->save();
         }
     }
     // facilities
     if ($request->facility_name) {
         $property->propertyMetas()->where('type', 'facility')->delete();
         foreach ($request->facility_name as $key => $value) {
             $propertyMeta = new \App\PropertyMeta();
             $propertyMeta->name = $value;
             $propertyMeta->value = 1;
             $propertyMeta->type = 'facility';
             $propertyMeta->property_id = $property->id;
             $propertyMeta->save();
         }
     }
     // files
     if ($request->hasFile('files')) {
         foreach ($request->file('files') as $key => $value) {
             $destinationPath = 'uploads/images/property';
             $extension = $value->getClientOriginalExtension();
             $fileName = date('YmdHis') . '_' . $key . '_kibarer_property' . '.' . $extension;
             $value->move($destinationPath, $fileName);
             $attachment = new \App\Attachment();
             $attachment->object_id = $property->id;
             $attachment->name = 'property';
             $attachment->file = $fileName;
             $attachment->type = 'img';
             $attachment->save();
         }
     }
     DB::commit();
     return response()->json(array('status' => 200, 'monolog' => array('title' => 'success', 'message' => 'object has been updated')));
 }