Image not found

How to update laravel .env dynamic from backend

Comment (0)

Admin

260


Hello Dev!

Today i'll show how to update laravel .env dynamicely from backend with database store.

First you have to create a customer helper function. If you don't know how to create Helper Function please Clicke here.

 

Step 1. Go to helper function.

 

public static function updateDotEnv($key, $newValue, $delim='')
{

        $path = base_path('.env');
        // get old value from current env
        $oldValue = env($key);

        // was there any change?
        if ($oldValue === $newValue) {
            return;
        }

        // rewrite file content with changed data
        if (file_exists($path)) {
            // replace current value with new value 
            file_put_contents(
                $path, str_replace(
                    $key.'='.$delim.$oldValue.$delim, 
                    $key.'='.$delim.$newValue.$delim, 
                    file_get_contents($path)
            )
       );
   }
}

 

Step 2. without database store

 

//Here we update email configyration in .env

public function emailConfigUpdate(Request $request)
    {   

        Helper::updateDotEnv('MAIL_MAILER',$request->driver);
        Helper::updateDotEnv('MAIL_HOST',$request->host);
        Helper::updateDotEnv('MAIL_PORT',$request->port);
        Helper::updateDotEnv('MAIL_USERNAME',$request->user_name);
        Helper::updateDotEnv('MAIL_PASSWORD',$request->password);
        Helper::updateDotEnv('MAIL_ENCRYPTION',$request->encryption);
        Helper::updateDotEnv('MAIL_FROM_ADDRESS',$request->sender_email);
        Helper::updateDotEnv('MAIL_FROM_NAME',$request->sender_name);

        return redirect()->back()->with('success','Successfully Updated!');

    }

 

Step 3. with database store

 

//Here we update email configyration in .env and database

public function emailConfigUpdate(Request $request)
    {   
        $data = EmailConfig::first();
        $data->driver       = $request->driver;
        $data->host         = $request->host;
        $data->port         = $request->port;
        $data->encryption   = $request->encryption;
        $data->user_name    = $request->user_name;
        $data->password     = $request->password;
        $data->sender_name  = $request->sender_name;
        $data->sender_email = $request->sender_email;
        $data->save();

        Helper::updateDotEnv('MAIL_MAILER',$request->driver);
        Helper::updateDotEnv('MAIL_HOST',$request->host);
        Helper::updateDotEnv('MAIL_PORT',$request->port);
        Helper::updateDotEnv('MAIL_USERNAME',$request->user_name);
        Helper::updateDotEnv('MAIL_PASSWORD',$request->password);
        Helper::updateDotEnv('MAIL_ENCRYPTION',$request->encryption);
        Helper::updateDotEnv('MAIL_FROM_ADDRESS',$request->sender_email);
        Helper::updateDotEnv('MAIL_FROM_NAME',$request->sender_name);

        return redirect()->back()->with('success','Successfully Updated!');

    }

Hopefully this will hepl for you

Thank you 


Others Problem Fix Stroy



Comments (0)

Your Comment