So, hier ist die endgültige Lösung zu verwenden.
Mein Controller:
use Illuminate\Support\Facades\Artisan;
use Illuminate\Support\Facades\Storage;
class TestController extends Controller
{
public function index() {
// Values I want to insert
$data = [
'APP_KEY' => str_random(32),
'DB_HOST' => 'localhost',
'DB_DATABASE' => 'lara_test',
'DB_USERNAME' => 'root',
'DB_PASSWORD' => ''
];
// default values of .env.example that I want to change
$defaults = ['SomeRandomString', '127.0.0.1', 'homestead', 'homestead', 'secret'];
// get contents of .env.example file
$content = file_get_contents(base_path() . '/.env.example');
// replace default values with new ones
$i = 0;
foreach ($data as $key => $value) {
$content = str_replace($key.'='.$defaults[$i], $key.'='.$value, $content);
$i++;
}
// Create new .env file
Storage::disk('root')->put('.env', $content);
// run all migrations
Artisan::call('migrate');
// run all db seeds
Artisan::call('db:seed');
dd('done');
}
}
neue Festplattentreiber:
Um eine neue Datei im Projektstamm zu schaffen, hatte ich einen neuen Disk-Treiber zu erstellen. Ich habe folgenden Code in meiner config/app.php
Datei:
'disks' => [
.....
'root' => [
'driver' => 'local',
'root' => base_path(),
],
],
und dies ermöglichte mir, neue Datei an der Wurzel zu erstellen, indem Sie mit:
Storage::disk('root')->put('filename', $content);
Zusammenfassung:
Also im Grunde bin ich immer die Inhalt von .env.example Datei, Ändern der Werte der Konstanten, die ich will und dann Erstellen einer neuen .env Datei. Danach habe ich alle meine Wanderungen und Samen ausgeführt.
Hinweis: ich manuell den APP_KEY
eingestellt musste wegen eines dummen Fehler No supported encrypter found. The cipher and/or key length are invalid.
Da ich versuche, alles in Code zu tun, nicht durch Befehle - Ich habe versucht, Artisan::call('key:generate');
verwenden, aber aus unerfindlichen Gründen nicht funktioniert, um das Problem zu beheben, musste ich manuell eine zufällige Zeichenfolge erstellen, die 32 Bit lang ist und es als APP_KEY
festlegen.
Ich hoffe, dies wird jemand anderem helfen. :) Und dank @rypskar für die Hilfe.
Danke für die Hilfe Mate. – Jazzbot