Be part of JetBrains PHPverse 2026 on June 9 – a free online event bringing PHP devs worldwide together.

iqbalbals's avatar

Laravel 11 Cannot access offset of type array in isset or empty

Hello, I just make a project with laravel 11

and my goal is make product

here my html code

 <div class="card-body">
                            <h5>Tambah Data</h5>
                            <input type="hidden" name="action" value="add">
                            <div class="form-group mb-3">
                                <label>Master Category</label>
                                <select class="form-select" name="master_category_id">
                                    @foreach($master_categories as $mc)
                                    <option value="{{ $mc['id'] }}">{{ $mc['name'] }}</option>
                                    @endforeach
                                </select>
                            </div>
                            <div class="form-group mb-3">
                                <label>Vendor Game</label>
                                <select class="form-select" name="vendor_id">
                                    @foreach($vendor as $v)
                                    <option value="{{ $v['id'] }}">{{ $v['name'] }}</option>
                                    @endforeach
                                </select>
                            </div>
                            <div class="upload-area">
                                <img src="{{ asset('no-image.jpg') }}" alt="Preview Uploaded Image" class="add-file-preview">
                            </div>
                            <div class="form-group mb-3">
                                <label>Gambar</label>
                                <input type="file" class="form-control file-upload" data-type="add" name="image" />
                            </div>
                            <div class="form-group mb-3">
                                <label>Layanan terpilih</label>
                                <select class="js-select2 form-select" id="example-select2-multiple" name="services[]" style="width: 100%;" data-placeholder="Choose many.." multiple>
                                    <option></option>
                                </select>
                            </div>

                            <div class="form-group mb-3">
                                <label>Description</label>
                                <textarea class="form-control" name="description"></textarea>
                            </div>
                            <div class="form-group mb-3">
                                <label>Type Form</label>
                                <select class="form-select" name="type_form">
                                    <option value="UserID">UserID</option>
                                    <option value="UserIDServer">UserIDServer</option>
                                </select>
                            </div>
                        </div>
                        <div class="card-footer">
                            <button type="button" class="btn btn-danger" onclick="closeForm()">Tutup</button>
                            <button type="submit" class="btn btn-primary">Simpan</button>
                        </div>

And here my controller

public function product(Request $request)
    {
        DB::beginTransaction();

        try {
            if ($request['action'] == "add") {
                $request->validate(
                    [
                        'master_category_id' => 'required',
                        'vendor_id' => 'required',
                        'image' => 'required|image|mimes:jpeg,png,jpg,gif|max:2048',
                        'services' => 'required|array',
                        'description' => 'required',
                        'type_form' => 'required'
                    ]
                );
                $imageName = time() . '-' . Uuid::uuid7()->toString() . '.' . $request->image->extension();
                $request->image->move(public_path('upload/image/product'), $imageName);
                $dataInsert = [
                    'vendor_id' => $request['vendor_id'],
                    'master_category_id' => $request['master_category_id'],
                    'image' => 'upload/image/product/' . $imageName,
                    'description' => $request['description'],
                    'type_form' => $request['type_form']
                ];
                $insertProduct = Product::create($dataInsert);
                // foreach ($serviceIds as $services) {
                //     ProductService::create([
                //         'product_id' => $insertProduct['id'],
                //         'service_id' => $services
                //     ]);
                // }
                $message = "Berhasil menambahkan Produk";
            } else {
                throw new \ErrorException('Invalid Action >.<');
            }
            DB::commit();
            return response()->json([
                'status' => true,
                'message' => $message
            ]);
        } catch (\ErrorException $e) {
            DB::rollBack();

            return response()->json([
                'status' => false,
                'message' => $e->getMessage()
            ]);
        }
    }

and i got an error

{
    "message": "Cannot access offset of type array in isset or empty",
    "exception": "TypeError",
    "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasAttributes.php",
    "line": 918,
    "trace": [
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasAttributes.php",
            "line": 1595,
            "function": "getCastType",
            "class": "Illuminate\Database\Eloquent\Model",
            "type": "->"
        },
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasAttributes.php",
            "line": 1633,
            "function": "hasCast",
            "class": "Illuminate\Database\Eloquent\Model",
            "type": "->"
        },
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasAttributes.php",
            "line": 1151,
            "function": "isDateCastable",
            "class": "Illuminate\Database\Eloquent\Model",
            "type": "->"
        },
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Concerns/HasAttributes.php",
            "line": 1022,
            "function": "isDateAttribute",
            "class": "Illuminate\Database\Eloquent\Model",
            "type": "->"
        },
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php",
            "line": 1340,
            "function": "setAttribute",
            "class": "Illuminate\Database\Eloquent\Model",
            "type": "->"
        },
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php",
            "line": 1303,
            "function": "insertAndSetId",
            "class": "Illuminate\Database\Eloquent\Model",
            "type": "->"
        },
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php",
            "line": 1142,
            "function": "performInsert",
            "class": "Illuminate\Database\Eloquent\Model",
            "type": "->"
        },
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php",
            "line": 1068,
            "function": "save",
            "class": "Illuminate\Database\Eloquent\Model",
            "type": "->"
        },
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/vendor/laravel/framework/src/Illuminate/Support/helpers.php",
            "line": 363,
            "function": "Illuminate\Database\Eloquent\{closure}",
            "class": "Illuminate\Database\Eloquent\Builder",
            "type": "->"
        },
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Builder.php",
            "line": 1067,
            "function": "tap"
        },
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/vendor/laravel/framework/src/Illuminate/Support/Traits/ForwardsCalls.php",
            "line": 23,
            "function": "create",
            "class": "Illuminate\Database\Eloquent\Builder",
            "type": "->"
        },
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php",
            "line": 2340,
            "function": "forwardCallTo",
            "class": "Illuminate\Database\Eloquent\Model",
            "type": "->"
        },
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/vendor/laravel/framework/src/Illuminate/Database/Eloquent/Model.php",
            "line": 2352,
            "function": "__call",
            "class": "Illuminate\Database\Eloquent\Model",
            "type": "->"
        },
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/app/Http/Controllers/AjaxController.php",
            "line": 215,
            "function": "__callStatic",
            "class": "Illuminate\Database\Eloquent\Model",
            "type": "::"
        },
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/vendor/laravel/framework/src/Illuminate/Routing/ControllerDispatcher.php",
            "line": 46,
            "function": "product",
            "class": "App\Http\Controllers\AjaxController",
            "type": "->"
        },
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/vendor/laravel/framework/src/Illuminate/Routing/Route.php",
            "line": 260,
            "function": "dispatch",
            "class": "Illuminate\Routing\ControllerDispatcher",
            "type": "->"
        },
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/vendor/laravel/framework/src/Illuminate/Routing/Route.php",
            "line": 206,
            "function": "runController",
            "class": "Illuminate\Routing\Route",
            "type": "->"
        },
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 806,
            "function": "run",
            "class": "Illuminate\Routing\Route",
            "type": "->"
        },
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 144,
            "function": "Illuminate\Routing\{closure}",
            "class": "Illuminate\Routing\Router",
            "type": "->"
        },
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/vendor/laravel/framework/src/Illuminate/Routing/Middleware/SubstituteBindings.php",
            "line": 50,
            "function": "Illuminate\Pipeline\{closure}",
            "class": "Illuminate\Pipeline\Pipeline",
            "type": "->"
        },
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 183,
            "function": "handle",
            "class": "Illuminate\Routing\Middleware\SubstituteBindings",
            "type": "->"
        },
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/VerifyCsrfToken.php",
            "line": 88,
            "function": "Illuminate\Pipeline\{closure}",
            "class": "Illuminate\Pipeline\Pipeline",
            "type": "->"
        },
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 183,
            "function": "handle",
            "class": "Illuminate\Foundation\Http\Middleware\VerifyCsrfToken",
            "type": "->"
        },
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/vendor/laravel/framework/src/Illuminate/View/Middleware/ShareErrorsFromSession.php",
            "line": 49,
            "function": "Illuminate\Pipeline\{closure}",
            "class": "Illuminate\Pipeline\Pipeline",
            "type": "->"
        },
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 183,
            "function": "handle",
            "class": "Illuminate\View\Middleware\ShareErrorsFromSession",
            "type": "->"
        },
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php",
            "line": 121,
            "function": "Illuminate\Pipeline\{closure}",
            "class": "Illuminate\Pipeline\Pipeline",
            "type": "->"
        },
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/vendor/laravel/framework/src/Illuminate/Session/Middleware/StartSession.php",
            "line": 64,
            "function": "handleStatefulRequest",
            "class": "Illuminate\Session\Middleware\StartSession",
            "type": "->"
        },
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 183,
            "function": "handle",
            "class": "Illuminate\Session\Middleware\StartSession",
            "type": "->"
        },
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/AddQueuedCookiesToResponse.php",
            "line": 37,
            "function": "Illuminate\Pipeline\{closure}",
            "class": "Illuminate\Pipeline\Pipeline",
            "type": "->"
        },
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 183,
            "function": "handle",
            "class": "Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse",
            "type": "->"
        },
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/vendor/laravel/framework/src/Illuminate/Cookie/Middleware/EncryptCookies.php",
            "line": 75,
            "function": "Illuminate\Pipeline\{closure}",
            "class": "Illuminate\Pipeline\Pipeline",
            "type": "->"
        },
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 183,
            "function": "handle",
            "class": "Illuminate\Cookie\Middleware\EncryptCookies",
            "type": "->"
        },
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 119,
            "function": "Illuminate\Pipeline\{closure}",
            "class": "Illuminate\Pipeline\Pipeline",
            "type": "->"
        },
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 805,
            "function": "then",
            "class": "Illuminate\Pipeline\Pipeline",
            "type": "->"
        },
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 784,
            "function": "runRouteWithinStack",
            "class": "Illuminate\Routing\Router",
            "type": "->"
        },
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 748,
            "function": "runRoute",
            "class": "Illuminate\Routing\Router",
            "type": "->"
        },
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/vendor/laravel/framework/src/Illuminate/Routing/Router.php",
            "line": 737,
            "function": "dispatchToRoute",
            "class": "Illuminate\Routing\Router",
            "type": "->"
        },
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 200,
            "function": "dispatch",
            "class": "Illuminate\Routing\Router",
            "type": "->"
        },
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 144,
            "function": "Illuminate\Foundation\Http\{closure}",
            "class": "Illuminate\Foundation\Http\Kernel",
            "type": "->"
        },
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/vendor/livewire/livewire/src/Features/SupportDisablingBackButtonCache/DisableBackButtonCacheMiddleware.php",
            "line": 19,
            "function": "Illuminate\Pipeline\{closure}",
            "class": "Illuminate\Pipeline\Pipeline",
            "type": "->"
        },
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 183,
            "function": "handle",
            "class": "Livewire\Features\SupportDisablingBackButtonCache\DisableBackButtonCacheMiddleware",
            "type": "->"
        },
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\Pipeline\{closure}",
            "class": "Illuminate\Pipeline\Pipeline",
            "type": "->"
        },
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/ConvertEmptyStringsToNull.php",
            "line": 31,
            "function": "handle",
            "class": "Illuminate\Foundation\Http\Middleware\TransformsRequest",
            "type": "->"
        },
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 183,
            "function": "handle",
            "class": "Illuminate\Foundation\Http\Middleware\ConvertEmptyStringsToNull",
            "type": "->"
        },
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TransformsRequest.php",
            "line": 21,
            "function": "Illuminate\Pipeline\{closure}",
            "class": "Illuminate\Pipeline\Pipeline",
            "type": "->"
        },
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/TrimStrings.php",
            "line": 51,
            "function": "handle",
            "class": "Illuminate\Foundation\Http\Middleware\TransformsRequest",
            "type": "->"
        },
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 183,
            "function": "handle",
            "class": "Illuminate\Foundation\Http\Middleware\TrimStrings",
            "type": "->"
        },
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/vendor/laravel/framework/src/Illuminate/Http/Middleware/ValidatePostSize.php",
            "line": 27,
            "function": "Illuminate\Pipeline\{closure}",
            "class": "Illuminate\Pipeline\Pipeline",
            "type": "->"
        },
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 183,
            "function": "handle",
            "class": "Illuminate\Http\Middleware\ValidatePostSize",
            "type": "->"
        },
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/vendor/laravel/framework/src/Illuminate/Foundation/Http/Middleware/PreventRequestsDuringMaintenance.php",
            "line": 110,
            "function": "Illuminate\Pipeline\{closure}",
            "class": "Illuminate\Pipeline\Pipeline",
            "type": "->"
        },
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 183,
            "function": "handle",
            "class": "Illuminate\Foundation\Http\Middleware\PreventRequestsDuringMaintenance",
            "type": "->"
        },
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/vendor/laravel/framework/src/Illuminate/Http/Middleware/HandleCors.php",
            "line": 49,
            "function": "Illuminate\Pipeline\{closure}",
            "class": "Illuminate\Pipeline\Pipeline",
            "type": "->"
        },
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 183,
            "function": "handle",
            "class": "Illuminate\Http\Middleware\HandleCors",
            "type": "->"
        },
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/vendor/laravel/framework/src/Illuminate/Http/Middleware/TrustProxies.php",
            "line": 57,
            "function": "Illuminate\Pipeline\{closure}",
            "class": "Illuminate\Pipeline\Pipeline",
            "type": "->"
        },
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 183,
            "function": "handle",
            "class": "Illuminate\Http\Middleware\TrustProxies",
            "type": "->"
        },
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/vendor/laravel/framework/src/Illuminate/Pipeline/Pipeline.php",
            "line": 119,
            "function": "Illuminate\Pipeline\{closure}",
            "class": "Illuminate\Pipeline\Pipeline",
            "type": "->"
        },
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 175,
            "function": "then",
            "class": "Illuminate\Pipeline\Pipeline",
            "type": "->"
        },
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/vendor/laravel/framework/src/Illuminate/Foundation/Http/Kernel.php",
            "line": 144,
            "function": "sendRequestThroughRouter",
            "class": "Illuminate\Foundation\Http\Kernel",
            "type": "->"
        },
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/vendor/laravel/framework/src/Illuminate/Foundation/Application.php",
            "line": 1172,
            "function": "handle",
            "class": "Illuminate\Foundation\Http\Kernel",
            "type": "->"
        },
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/public/index.php",
            "line": 17,
            "function": "handleRequest",
            "class": "Illuminate\Foundation\Application",
            "type": "->"
        },
        {
            "file": "/Users/mochiqbalarrasyid/Documents/rw/AyoBayarLaravel/vendor/laravel/framework/src/Illuminate/Foundation/resources/server.php",
            "line": 16,
            "function": "require_once"
        }
    ]
}
0 likes
0 replies

Please or to participate in this conversation.