/** * Register any other events for your application. * * @param \Illuminate\Contracts\Events\Dispatcher $events * @return void */ public function boot(DispatcherContract $events) { parent::boot($events); AttributeType::deleting(function ($attr) { $sub_attrs = Attribute::where('type_id', '=', $attr->id)->get(); foreach ($sub_attrs as $sa) { $sa->delete(); } }); EntityType::deleting(function ($entity) { $entities = $entity->entities; foreach ($entities as $e) { $e->delete(); } }); Entity::deleting(function ($entity) { $alarms = $entity->alarms; foreach ($alarms as $a) { $a->delete(); } }); Alarm::deleting(function ($alarm) { $reminders = $alarm->history; foreach ($reminders as $r) { $r->delete(); } }); }
public function update(Request $request, $id) { $e = EntityType::findOrFail($id); $e->name = $request->input('name'); $icon = $request->input('icon'); $e->icon = substr($icon, strpos($icon, '-') + 1); $e->save(); $ids = $request->input('attribute_id'); $names = $request->input('attribute_name'); $types = $request->input('attribute_type'); $saved = array(); for ($i = 0; $i < count($ids); $i++) { $aid = $ids[$i]; if ($aid == '' || $ids == -1) { $a = new AttributeType(); } else { $a = AttributeType::findOrFail($aid); } $a->name = $names[$i]; $a->datatype = $types[$i]; $a->entity_type = $e->id; $a->order = $i; $a->save(); $saved[] = $a->id; } AttributeType::where('entity_type', '=', $e->id)->whereNotIn('id', $saved)->delete(); return redirect(url('/config')); }
public function run() { Model::unguard(); DB::table('users')->delete(); DB::table('password_resets')->delete(); DB::table('attribute_types')->delete(); DB::table('attributes')->delete(); DB::table('entity_types')->delete(); DB::table('entities')->delete(); DB::table('alarm_types')->delete(); DB::table('alarms')->delete(); $admin = User::create(['name' => 'Amministratore', 'email' => '*****@*****.**', 'password' => Hash::make('cippalippa')]); $personType = EntityType::create(['name' => 'Personale', 'icon' => 'user']); $attrs = ['Indirizzo Mail' => 'mail', 'Telefono' => 'string', 'Data di Nascita' => 'date']; foreach ($attrs as $n => $t) { AttributeType::create(['name' => $n, 'datatype' => $t, 'entity_type' => $personType->id]); } $vehicleType = EntityType::create(['name' => 'Veicoli', 'icon' => 'plane']); $attrs = ['Targa' => 'string']; foreach ($attrs as $n => $t) { AttributeType::create(['name' => $n, 'datatype' => $t, 'entity_type' => $vehicleType->id]); } $placeType = EntityType::create(['name' => 'Luoghi', 'icon' => 'home']); $attrs = ['Indirizzo' => 'address']; foreach ($attrs as $n => $t) { AttributeType::create(['name' => $n, 'datatype' => $t, 'entity_type' => $placeType->id]); } Model::reguard(); }
public function attribute($type) { if (is_string($type)) { $name = $type; } else { $name = $type->slug; } return AttributeType::where('entity_type', '=', $this->id)->where('slug', '=', $name)->first(); }