/** * 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'); } }
/** * 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'))); }