/** * Run the database seeds. * * @return void */ public function run() { $defaultMessages = correspondence()->defaults(); foreach ($defaultMessages as $message) { $setting = new MessageSetting(); $setting->type = $message['type']; $setting->key = $message['key']; $setting->label = $message['label']; $setting->subject = $message['subject']; $setting->body = $message['body']; $setting->pro_tip = $message['pro_tip']; $setting->signoff = $message['signoff']; $setting->save(); } }
/** * Build the series of messages from the defaults in settings. * * @return array */ public function getMessagesFromSettings() { $filteredMessages = []; $messages = MessageSetting::all(); $messages = $messages->toArray(); foreach ($messages as $message) { unset($message['id']); unset($message['created_at']); unset($message['updated_at']); $filteredMessages[] = $message; } return $filteredMessages; }
/** * Update the specified resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function update(Request $request) { // @TODO: this is kinda gross and can likely be combined with methods in MessageRepository @_@ $input = $request->all(); $messages = $input['messages']; foreach ($messages as $type => $items) { foreach ($items as $key => $data) { $data['type'] = $type; $data['key'] = $key; $message = MessageSetting::where('type', $type)->where('key', $key)->first(); $attributes = $message->getFillable(); foreach ($attributes as $attribute) { if (isset($data[$attribute])) { $message->{$attribute} = $data[$attribute]; } } $message->save(); } } return redirect()->route('settings.index')->with('status', 'Default messages have been updated!'); }
/** * Show the form for creating a new resource. * * @return \Illuminate\Http\Response */ public function create() { $messages = MessageSetting::all(); return view('contests.create', compact('messages')); }