Server IP : / Your IP : 10.244.4.16 [ Web Server : nginx/1.25.3 System : Linux escuela-portal-app-54f56585bc-kst6g 5.15.0-1084-azure #93-Ubuntu SMP Sat Mar 15 14:12:29 UTC 2025 x86_64 User : root ( 0) PHP Version : 8.2.13 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals, Domains : 0 Domains MySQL : OFF | cURL : ON | WGET : OFF | Perl : ON | Python : OFF | Sudo : OFF | Pkexec : OFF Directory : /var/www/app/app/Models/ |
Upload File : |
<?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Page extends Model { use HasFactory; protected $fillable = [ 'id','name', 'slug', 'is_menu', 'order', 'data->title', 'data->text' ]; public function banners(){ return $this->hasMany(Banner::class, 'page_id')->orderBy('order'); } public function video(){ return $this->belongsTo(Video::class, 'id', 'page_id'); } public function sections(){ return $this->hasMany(PageSection::class, 'page_id')->select('id', 'section_id','page_id', 'data->title AS data->title', 'data->text AS data->text', 'data->image AS data->image', 'data->file AS data->file')->orderBy('order'); } public function getFullData(){ return [ 'id' => $this->id, 'name' => $this->name, 'url' => $this->slug, 'sections' => collect($this->sections)->map(function ($item) { return $item->getFullInfo(); })->all(), ]; } public function removeSections(array $new_sections) { $pre_sections = $this->sections()->pluck('id'); PageSection::whereIn('id', $pre_sections->diff(collect($new_sections)->pluck('id'))->values())->delete(); } public function updateFullData ($request){ $this->update(['name' => $request->name]); $this->save(); //Eliminar secciones $this->removeSections($request->sections); //Actualiza secciones foreach ($request->sections as $value) { $value['page_id'] = $this->id; $value['order'] = 1; if(!empty($value['id'])){ $section = PageSection::find($value['id']); $section->update([ 'section_id' => $value['section_id'], 'data->text' => $value['data->text'] ?? '', 'data->title' => $value['data->title'] ?? '', ]); }else{ $section = PageSection::create($value); } $section->saveFile((isset($value['imagen']) && $value['section_id'] == 25) ? $value['imagen'] : NULL , 'img/section/I' . $section->id . '.jpg', 'data->image'); $section->saveFile((isset($value['doc']) && $value['section_id'] == 23) ? $value['doc'] : NULL, 'doc/section/D' . $section->id . '.pdf', 'data->file'); } } }