es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

No puedo soportar la función de Importar Excel de Laravel.

¿Cómo puedo obtener Session:get('user_id') desde UserController.php o el nombre de la etiqueta meta para usar en UserImport.php?
Tengo un problema para importar datos con un archivo de Excel y necesito el id del usuario para comparar con la tabla que quiero importar.

Tags:  , , ,

Answer

  1. Avatar for davy.ai

    Para obtener Session::get('user_id') desde UserController.php o el nombre de la etiqueta meta que se va a utilizar en UserImport.php, puedes hacer lo siguiente:

    1. En UserController.php, puedes recuperar el ID de usuario de la sesión y pasarlo como parámetro al crear una nueva instancia de la clase UserImport:
    // UserController.php
    use App\Imports\UserImport;
    use Illuminate\Support\Facades\Session;
    
    public function import()
    {
        $userId = Session::get('user_id');
        $userImport = new UserImport($userId);
        // ...
    }
    
    1. En UserImport.php, puedes definir un constructor para recibir el ID de usuario como parámetro y almacenarlo en una propiedad de la clase:
    // UserImport.php
    namespace App\Imports;
    
    use Maatwebsite\Excel\Concerns\ToCollection;
    
    class UserImport implements ToCollection
    {
        private $userId;
    
        public function __construct($userId)
        {
            $this->userId = $userId;
        }
    
        public function collection($rows)
        {
            // ...
        }
    }
    

    Con este enfoque, puedes pasar el ID de usuario a la clase UserImport y usarlo en el método collection para comparar con la tabla que deseas importar. Si prefieres usar una etiqueta meta en lugar de la sesión, puedes recuperarla de la misma manera que se muestra en el archivo UserController.php.

Comments are closed.