Quiero almacenar la ruta de la imagen en la base de datos. El código de mi controlador en vendor\laravel\framework\src\Illuminate\Foundation\Auth\RegistersUsers.php sigue:
public function register(Request $request) { $this->validator($request->all())->validate(); if($request->hasFile('image')) { $image_name = $request->file('image')->getClientOriginalName(); $image_path = $request->file('image')->store('public'); $user->image = Storage::url($image_name); $user->save(); } event(new Registered($user = $this->create($request->all()))); // $this->guard()->login($user); disable autologin for new users return $this->registered($request, $user) ?: redirect($this->redirectPath()); } Recibo el siguiente error: ErrorException en RegistersUsers.php línea 40: Creación de un objeto predeterminado a partir de un valor vacío
.
La imagen se guarda en una carpeta pública, pero no se puede guardar la ruta de la imagen en la base de datos de la tabla de usuarios. esquema de tabla de usuario
Schema::create('users', function (Blueprint $table) { $table->increments('user_id'); $table->string('name'); $table->string('image'); $table->rememberToken(); $table->timestamps();
cómo proceder para almacenar la ruta de la imagen en la tabla de usuario en la base de datos
no ha inicializado la variable $user en el controlador y antes de usarla debe agregar $user = new User; asumiendo que ya has use App\User;
o $user = new \App\User; si no lo haces
Actualice si está tratando de actualizar un registro de usuario existente, debe inicializar la variable $user seleccionando en función de su clave principal que debe enviarse en la solicitud y luego realizar la inicialización como:
$user_id = $request->input('user_id'); $user = User::find($user_id);Use la forma simple a continuación:
$user = User::where('id', '=', $id)->first(); // where id is method param from url or request object $user->save();Esto también es más fácil cuando se actualizan varias tablas en las que los identificadores de las subtablas tienen claves externas y deben definirse explícitamente en el proceso de actualización.
También $user = User::find($id); normalmente funciona donde $id es la clave principal de esa tabla de objetos