Tirso Lecointere Problema al guardar datos en una tabla polimorfica (uno a uno)

Tirso Lecointere Publicada hace 1 semana | 0

Problema al guardar datos en una tabla polimorfica (uno a uno)

↑ Me gusta (0)

Hola a todos, estoy haciendo un sistema de gestión de ganado (animales) y resulta que he logrado hacer una tabla polimorfica llamada "avatar" para manejar todos las imagenes de perfil (avatares) tanto para usuarios como animales de dicho sistema.

Algo que no estoy muy claro como hacer es como guardar este archivo de imagen en la respectiva tabla. Dejare el código del controlador para que revisen y me puedan ayudar.

Cabe destacar que estoy utilizando Intervention Image para manipular la imagen subida.

AnimalsController.php

public function store(Request $request)
    {
        // validate
        $this->validate($request, [
            'identifier' => 'required|min:4|max:4',
            'name' => 'required',
            'gender' => 'required',
            'color' => 'required',
        ]);

        // store animal
        $animal = new Animal;

        $animal->identifier =       $request->identifier;
        $animal->name =             $request->name;
        $animal->gender =           $request->gender;
        $animal->birth_date =       $request->birth_date;
        $animal->birth_weight =     $request->birth_weight;
        $animal->color =            $request->color;
        $animal->race =             $request->race;
        $animal->comments =         $request->comments;

        // avatar

        if ($request->hasFile('avatar')) {
            $avatar =           new Avatar;
            $avatar_file =      $request->file('avatar');
            $avatar_size =      300;
            $avatar_name =      uniqid($animal->id . '_' . date() . '_' . time()) . $avatar_file->getClientOriginalExtension();

            Image::make($avatar_file)->fit($avatar_size, $avatar_size, function($constraint) {
                $constraint->upsize();
            })->save(public_path('uploads/avatars/' . $avatar_name));

            $animal->avatar()->save($avatar);
        }

        // end avatar

        $animal->save();

        return redirect('/animals')->with('success', 'Animal agregado exitosamente!');
    }

Como ven alli intente hacerlo, pero no se esta guardando la imagen en la base de datos y tampoco me esta mostrando ningun error.

Espero puedan ayudarme, gracias


Inicia sesión para responderle a Tirso Lecointere