Nach dem Upgrade von Laravel von 5.6 auf 6.0 funktioniert der Aufruf der undefinierten str_random()-Funktion nicht

Lesezeit: 2 Minuten

Benutzer-Avatar
Vishal Srivastava

Ich habe Laravel von 5.6 auf 6.0 aktualisiert. Zuvor liefen die Standard-Hilfsfunktionen auf den Controllern einwandfrei, aber jetzt heißt es “nicht definiert.” In meinem Controller habe ich Folgendes verwendet.

$filename = str_random(12);

Ich erhalte den folgenden Fehler.

Nachricht: “Aufruf einer undefinierten Funktion App\Http\Controllers\str_random()”

Ich habe auch die verwendet random() Funktion, und es sagt dasselbe.

Kann mich bitte jemand anleiten, was zu tun ist?.

Ich habe Befehle ausgeführt wie:

composer dump-autoload

Aber ich bekomme den gleichen Fehler.

  • Soweit es mich betrifft str_random() wurde in 5.8 entfernt, sieht nicht so aus, als würde es überhaupt unterstützt. Versuchen Sie stattdessen Folgendes: laravel.com/docs/6.x/helpers#method-str-random

    – Lukasz Formela

    30. September 2019 um 7:42 Uhr

  • Könnten Sie bitte posten, wo in der Dokumentation steht, dass “diese Funktionen” noch unterstützt werden? laravel.com/docs/6.x/helpers#method-str-random sagt es ist Str::random()

    – Brombeer

    30. September 2019 um 7:42 Uhr

  • @kerbholz: Hallo Sir, es tut mir sehr leid, ich habe die 5.6-Dokumentation anstelle von 6.0 gesehen. Jetzt habe ich das obere Auswahlfeld heruntergezogen und die Version als 6.0 festgelegt. Ich kann nicht sehen, was Sie geschrieben haben, ist richtig

    – Vishal Srivastava

    30. September 2019 um 7:46 Uhr

Benutzer-Avatar
Jignesh Joisar

Auswirkungswahrscheinlichkeit: Hoch Laravel 6-Upgrade-Leitfaden

In Laravel 6 All str_ und array_ Helfer sind ins Neue umgezogen laravel/helpers Composer-Paket u aus dem Rahmen entfernt. Wenn Sie möchten, können Sie alle Aufrufe dieser Helfer aktualisieren, um die zu verwenden Illuminate\Support\Str und Illuminate\Support\Arr Klassen. Alternativ können Sie die neue hinzufügen laravel/helpers -Paket zu Ihrer Anwendung hinzufügen, um diese Helfer weiterhin zu verwenden:

composer require laravel/helpers

Wenn Sie kein Paket hinzufügen möchten, dann verwendet Str Und Arr Klassen.

Zum Beispiel :

Str::random(12)

https://laravel.com/docs/master/helpers#method-str-random

  • Str::replace ist nicht da, was kann ich stattdessen verwenden? wenn ich durch ersetzen möchte?

    – Anonymes Mädchen

    19. Juni 2021 um 19:24 Uhr

  • nutze die eingebaute str_replace Funktion andernfalls folge meiner Antwort.

    – Jignesh Joisar

    20. Juni 2021 um 7:23 Uhr

Fügen Sie die folgende Zeichenfolgenbibliothek hinzu.

use Illuminate\Support\Str;

Jetzt können Sie es wie folgt verwenden.

$filename = Str::random(40)

Installieren Sie alternativ das folgende Paket.

composer require laravel/helpers

In meinem Fall habe ich keinen der String-Helfer in meinem App-Code verwendet, also musste ich nur die kompilierte Klassendatei entfernen:

php artisan clear-compiled

Code verwenden ::

<?php

namespace App\Http\Controllers;

use Exception;
use Illuminate\Support\Str;
use Illuminate\Support\Arr;
use Illuminate\Http\Request;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Log;



   public function index()
    {
        $count=15;
        try {
            DB::statement('truncate users');
            DB::beginTransaction();
            while ($count--){
                $id = DB::table('users')->insertGetId( [
                    'name'=>'Sample'.$count,
                    'password'=>random_int(1000000,99999999)
                ]);
                foreach (range(1,rand(1,3)) as $index ){
                    DB::insert('INSERT INTO posts (userid,title,body) VALUES (:userid,:title,:body)',[
                            'userid'=>$id,
                            'title'=>str::random(15),
                            'body'=>str::random(50),
                        ]);
                }
                DB::commit();
            }
        }catch (\Exception $errors){
            DB::rollBack();
            Log::error($errors);
            return "mission filed";
        }
    }

1216330cookie-checkNach dem Upgrade von Laravel von 5.6 auf 6.0 funktioniert der Aufruf der undefinierten str_random()-Funktion nicht

This website is using cookies to improve the user-friendliness. You agree by using the website further.

Privacy policy