Jun 18, 2024
0
Level 1
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"
}
]
}
Please or to participate in this conversation.