After upgrading Laravel from 5.6 to 6.0, Call to undefined str_random() function not working

后端 未结 4 1030
说谎
说谎 2020-12-15 06:29

I have upgraded Laravel from 5.6 to 6.0. Previously, default helper functions were running fine on the controllers, but now it says \"undefined.\" In my con

相关标签:
4条回答
  • 2020-12-15 07:01

    Likelihood Of Impact: High Laravel 6 Upgrade Guide

    In Laravel 6 All str_ and array_ helpers have been moved to the new laravel/helpers Composer package and removed from the framework. If desired, you may update all calls to these helpers to use the Illuminate\Support\Str and Illuminate\Support\Arr classes. Alternatively, you can add the new laravel/helpers package to your application to continue using these helpers:

    composer require laravel/helpers
    

    If don't want to add Package then Used Str And Arr Classes.

    For Example :

    Str::random(12)
    

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

    0 讨论(0)
  • 2020-12-15 07:10

    Add the following string library.

    use Illuminate\Support\Str;
    

    now you can use it as below.

    $filename = Str::random(40)
    

    alternatively, install the following package.

    composer require laravel/helpers
    
    0 讨论(0)
  • 2020-12-15 07:24

    use code ::

    <?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";
            }
        }
    
    0 讨论(0)
  • 2020-12-15 07:28

    In my case, I didn't use any of the string helpers in my app code, so I just had to remove the compiled class file:

    php artisan clear-compiled
    
    0 讨论(0)
提交回复
热议问题