Loading app/Http/Controllers/InstitucionesController.php 0 → 100644 +108 −0 Original line number Diff line number Diff line <?php namespace App\Http\Controllers; use App\Models\Instituciones; use App\Models\Subgrupo; use Illuminate\Http\Request; class InstitucionesController extends Controller { public function index() { $instituciones = Instituciones::all(); return view('adminGen.instituciones.index', compact('instituciones')); } public function create() { $subgrupos = Subgrupo::all(); return view('adminGen.instituciones.create', compact('subgrupos')); } public function store(Request $request) { $validatedData = $request->validate([ 'nombre' => 'required|string|max:255', 'RFC' => 'nullable|string|max:13', 'aniversario' => 'nullable|date', 'observaciones' => 'nullable|string', 'subgrupo_id' => 'nullable|integer', 'imagen' => 'nullable|image|mimes:jpeg,png,jpg,gif|max:2048', 'domicilio' => 'nullable|string|max:255', 'codigo_postal' => 'nullable|string|max:10', 'localidad' => 'nullable|string|max:255', 'prefijo' => 'nullable|string|max:10', 'lada' => 'nullable|string|max:5', 'numero' => 'nullable|string|max:15', 'tipo' => 'nullable|string', 'estatus' => 'nullable|boolean', 'ext' => 'nullable|string|max:10', 'observaciones' => 'nullable|string', 'ID_radio' => 'nullable|string|max:50', 'nombre' => 'nullable|string|max:255', 'link' => 'nullable|url', 'tipo' => 'nullable|string', ]); // Handle file upload if there is any if ($request->hasFile('imagen')) { $imagePath = $request->file('imagen')->store('imagenes', 'public'); $validatedData['imagen'] = $imagePath; } $institucion = Institucion::create($validatedData); // Guardar los teléfonos foreach ($request->prefijo as $index => $prefijo) { Telefono::create([ 'institucion_id' => $institucion->id, 'prefijo' => $prefijo, 'lada' => $request->lada[$index], 'numero' => $request->numero[$index], 'tipo' => $request->tipo[$index], 'estatus' => $request->estatus[$index], 'ext' => $request->ext[$index], 'observaciones' => $request->telefono_observaciones[$index], 'ID_radio' => $request->ID_radio[$index], ]); } // Guardar las redes sociales foreach ($request->red_nombre as $index => $red_nombre) { RedSocial::create([ 'institucion_id' => $institucion->id, 'nombre' => $red_nombre, 'link' => $request->link[$index], 'tipo' => $request->red_tipo[$index], ]); } return redirect()->route('instituciones.index')->with('success', 'Institución creada exitosamente'); } public function edit($id) { $institucion = Instituciones::findOrFail($id); $subgrupos = Subgrupo::all(); return view('adminGen.instituciones.edit', compact('institucion', 'subgrupos')); } public function update(Request $request, $id) { $institucion = Instituciones::findOrFail($id); $data = $request->all(); if ($request->hasFile('imagen')) { $data['imagen'] = $request->file('imagen')->store('imagenes', 'public'); } $institucion->update($data); return redirect()->route('instituciones.index'); } public function destroy($id) { $institucion = Instituciones::findOrFail($id); $institucion->delete(); return redirect()->route('instituciones.index'); } } app/Http/Controllers/RedesSocialesInstController.php 0 → 100644 +75 −0 Original line number Diff line number Diff line <?php namespace App\Http\Controllers; use App\Models\RedSocialInst; use App\Models\Institucion; use Illuminate\Http\Request; class RedSocialInstController extends Controller { public function index() { $redesSociales = RedSocialInst::with('institucion')->get(); return view('redes_sociales.index', compact('redesSociales')); } public function create() { $instituciones = Institucion::all(); return view('redes_sociales.create', compact('instituciones')); } public function store(Request $request) { $data = $request->all(); $redSocial = new RedSocialInst([ 'nombre' => $request->nombre, 'link' => $request->link, 'tipo' => $request->tipo, 'instituciones_id' => $request->instituciones_id ]); $redSocial->save(); return redirect()->route('instituciones.create')->with('success', 'Red social creada exitosamente.'); } public function show($id) { $institucion = Institucion::findOrFail($id); $redesSociales = $institucion->redesSociales; return view('instituciones.show', compact('institucion', 'redesSociales')); } public function edit(RedSocialInst $redSocial) { $instituciones = Institucion::all(); return view('redes_sociales.edit', compact('redSocial', 'instituciones')); } public function update(Request $request, RedSocialInst $redSocial) { $request->validate([ 'nombre' => 'required|string|max:255', 'link' => 'required|url|max:255', 'tipo' => 'required|string|max:255', 'instituciones_id' => 'nullable|exists:instituciones,id' ]); $redSocial->update($request->all()); return redirect()->route('redes_sociales.index')->with('success', 'Red social actualizada exitosamente.'); } public function destroy(RedSocialInst $redSocial) { $redSocial->delete(); return redirect()->route('redes_sociales.index')->with('success', 'Red social eliminada exitosamente.'); } } app/Http/Controllers/TelefonoInstController.php 0 → 100644 +29 −0 Original line number Diff line number Diff line <?php namespace App\Http\Controllers; use App\Models\TelefonoInst; use Illuminate\Http\Request; class TelefonoInstController extends Controller { public function store(Request $request) { $validatedData = $request->validate([ 'prefijo' => 'required|integer', 'lada' => 'required|integer', 'numero' => 'required|integer', 'tipo' => 'required|string|max:255', 'estatus' => 'required|boolean', 'ext' => 'nullable|integer', 'observaciones' => 'nullable|string|max:255', 'ID_radio' => 'nullable|string|max:255', 'instituciones_id' => 'required|exists:instituciones,id' ]); TelefonoInst::create($validatedData); return redirect()->back()->with('success', 'Teléfono creado con éxito'); } } app/Models/Instituciones.php 0 → 100644 +38 −0 Original line number Diff line number Diff line <?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Instituciones extends Model { use HasFactory; protected $fillable = [ 'imagen', 'nombre', 'RFC', 'domicilio', 'codigo_postal', 'localidad', 'aniversario', 'observaciones', 'subgrupo_id' ]; public function subgrupo() { return $this->belongsTo(Subgrupo::class); } public function redesSociales() { return $this->hasMany(RedesSocialesInst::class, 'instituciones_id'); } public function telefonos() { return $this->hasMany(TelefonoInst::class, 'instituciones_id'); } } app/Models/RedesSocialesInst.php 0 → 100644 +23 −0 Original line number Diff line number Diff line <?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class RedSocialInst extends Model { use HasFactory; protected $fillable = [ 'nombre', 'link', 'tipo', 'instituciones_id' ]; public function institucion() { return $this->belongsTo(Institucion::class, 'instituciones_id'); } } No newline at end of file Loading
app/Http/Controllers/InstitucionesController.php 0 → 100644 +108 −0 Original line number Diff line number Diff line <?php namespace App\Http\Controllers; use App\Models\Instituciones; use App\Models\Subgrupo; use Illuminate\Http\Request; class InstitucionesController extends Controller { public function index() { $instituciones = Instituciones::all(); return view('adminGen.instituciones.index', compact('instituciones')); } public function create() { $subgrupos = Subgrupo::all(); return view('adminGen.instituciones.create', compact('subgrupos')); } public function store(Request $request) { $validatedData = $request->validate([ 'nombre' => 'required|string|max:255', 'RFC' => 'nullable|string|max:13', 'aniversario' => 'nullable|date', 'observaciones' => 'nullable|string', 'subgrupo_id' => 'nullable|integer', 'imagen' => 'nullable|image|mimes:jpeg,png,jpg,gif|max:2048', 'domicilio' => 'nullable|string|max:255', 'codigo_postal' => 'nullable|string|max:10', 'localidad' => 'nullable|string|max:255', 'prefijo' => 'nullable|string|max:10', 'lada' => 'nullable|string|max:5', 'numero' => 'nullable|string|max:15', 'tipo' => 'nullable|string', 'estatus' => 'nullable|boolean', 'ext' => 'nullable|string|max:10', 'observaciones' => 'nullable|string', 'ID_radio' => 'nullable|string|max:50', 'nombre' => 'nullable|string|max:255', 'link' => 'nullable|url', 'tipo' => 'nullable|string', ]); // Handle file upload if there is any if ($request->hasFile('imagen')) { $imagePath = $request->file('imagen')->store('imagenes', 'public'); $validatedData['imagen'] = $imagePath; } $institucion = Institucion::create($validatedData); // Guardar los teléfonos foreach ($request->prefijo as $index => $prefijo) { Telefono::create([ 'institucion_id' => $institucion->id, 'prefijo' => $prefijo, 'lada' => $request->lada[$index], 'numero' => $request->numero[$index], 'tipo' => $request->tipo[$index], 'estatus' => $request->estatus[$index], 'ext' => $request->ext[$index], 'observaciones' => $request->telefono_observaciones[$index], 'ID_radio' => $request->ID_radio[$index], ]); } // Guardar las redes sociales foreach ($request->red_nombre as $index => $red_nombre) { RedSocial::create([ 'institucion_id' => $institucion->id, 'nombre' => $red_nombre, 'link' => $request->link[$index], 'tipo' => $request->red_tipo[$index], ]); } return redirect()->route('instituciones.index')->with('success', 'Institución creada exitosamente'); } public function edit($id) { $institucion = Instituciones::findOrFail($id); $subgrupos = Subgrupo::all(); return view('adminGen.instituciones.edit', compact('institucion', 'subgrupos')); } public function update(Request $request, $id) { $institucion = Instituciones::findOrFail($id); $data = $request->all(); if ($request->hasFile('imagen')) { $data['imagen'] = $request->file('imagen')->store('imagenes', 'public'); } $institucion->update($data); return redirect()->route('instituciones.index'); } public function destroy($id) { $institucion = Instituciones::findOrFail($id); $institucion->delete(); return redirect()->route('instituciones.index'); } }
app/Http/Controllers/RedesSocialesInstController.php 0 → 100644 +75 −0 Original line number Diff line number Diff line <?php namespace App\Http\Controllers; use App\Models\RedSocialInst; use App\Models\Institucion; use Illuminate\Http\Request; class RedSocialInstController extends Controller { public function index() { $redesSociales = RedSocialInst::with('institucion')->get(); return view('redes_sociales.index', compact('redesSociales')); } public function create() { $instituciones = Institucion::all(); return view('redes_sociales.create', compact('instituciones')); } public function store(Request $request) { $data = $request->all(); $redSocial = new RedSocialInst([ 'nombre' => $request->nombre, 'link' => $request->link, 'tipo' => $request->tipo, 'instituciones_id' => $request->instituciones_id ]); $redSocial->save(); return redirect()->route('instituciones.create')->with('success', 'Red social creada exitosamente.'); } public function show($id) { $institucion = Institucion::findOrFail($id); $redesSociales = $institucion->redesSociales; return view('instituciones.show', compact('institucion', 'redesSociales')); } public function edit(RedSocialInst $redSocial) { $instituciones = Institucion::all(); return view('redes_sociales.edit', compact('redSocial', 'instituciones')); } public function update(Request $request, RedSocialInst $redSocial) { $request->validate([ 'nombre' => 'required|string|max:255', 'link' => 'required|url|max:255', 'tipo' => 'required|string|max:255', 'instituciones_id' => 'nullable|exists:instituciones,id' ]); $redSocial->update($request->all()); return redirect()->route('redes_sociales.index')->with('success', 'Red social actualizada exitosamente.'); } public function destroy(RedSocialInst $redSocial) { $redSocial->delete(); return redirect()->route('redes_sociales.index')->with('success', 'Red social eliminada exitosamente.'); } }
app/Http/Controllers/TelefonoInstController.php 0 → 100644 +29 −0 Original line number Diff line number Diff line <?php namespace App\Http\Controllers; use App\Models\TelefonoInst; use Illuminate\Http\Request; class TelefonoInstController extends Controller { public function store(Request $request) { $validatedData = $request->validate([ 'prefijo' => 'required|integer', 'lada' => 'required|integer', 'numero' => 'required|integer', 'tipo' => 'required|string|max:255', 'estatus' => 'required|boolean', 'ext' => 'nullable|integer', 'observaciones' => 'nullable|string|max:255', 'ID_radio' => 'nullable|string|max:255', 'instituciones_id' => 'required|exists:instituciones,id' ]); TelefonoInst::create($validatedData); return redirect()->back()->with('success', 'Teléfono creado con éxito'); } }
app/Models/Instituciones.php 0 → 100644 +38 −0 Original line number Diff line number Diff line <?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class Instituciones extends Model { use HasFactory; protected $fillable = [ 'imagen', 'nombre', 'RFC', 'domicilio', 'codigo_postal', 'localidad', 'aniversario', 'observaciones', 'subgrupo_id' ]; public function subgrupo() { return $this->belongsTo(Subgrupo::class); } public function redesSociales() { return $this->hasMany(RedesSocialesInst::class, 'instituciones_id'); } public function telefonos() { return $this->hasMany(TelefonoInst::class, 'instituciones_id'); } }
app/Models/RedesSocialesInst.php 0 → 100644 +23 −0 Original line number Diff line number Diff line <?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Model; class RedSocialInst extends Model { use HasFactory; protected $fillable = [ 'nombre', 'link', 'tipo', 'instituciones_id' ]; public function institucion() { return $this->belongsTo(Institucion::class, 'instituciones_id'); } } No newline at end of file