fatihtuzlu
$table->id()
zaten auto increment primary key oluşturur, autoIncrement() kısmını kaldırın
$table->string('status',5)->nullable()->default('false');
kısmını $table->string('status', 5)->default('false');
yapın. Hem boş bırakılabilir yapmışsınız hem de default vermişsiniz, yani boş bırakılamaz aslında.
Sorgu şöyle olacak (Ben parent_id değeri 0 olanları çekeceğinizi düşünerek yaptım, where için ikinci bir parametre girmeniz lazım). Sorunun buradan kaynaklandığını düşünüyorum:
$datalist = DB::table('categories')->where('parent_id', 0)->get();
Eğer get yerine first kullanırsanız zaten tek kayıt getir demektir, foreach kullanmazsınız. Hem first hem de foreach kullandığınız için $rs index oluyor, index integer olduğu için (int)->id yapmaya çalışıyor, o yüzden hata alıyorsunuz.
Kategoriler için kendiniz resource controller oluşturmuşsunuz. Halbuki yapmanız gereken şu:
php artisan make:controller Admin/CategoryController --resource
Bu size bir tane içi dolu resource controller oluşturur. İçinde kullanıma hazır index, create, store, edit, update ve destroy yöntemleri olur, siz sadece içlerini doldurursunuz. Bunu rotasını da sadece şu şekilde oluşturuyorsunuz:
Route::resource('categories', CategoryController::class);
Bu da otomatik olarak tüm yöntemlerin rotasını tanımlar ve isimlendirir:
+-----------+-----------------------------+---------+--------------------+
| Verb | URI | Action | Route Name |
+-----------+-----------------------------+---------+--------------------+
| GET | /categories | index | categories.index |
| GET | /categories/create | create | categories.create |
| POST | /categories | store | categories.store |
| GET | /categories/{category} | show | categories.show |
| GET | /categories/{category}/edit | edit | categories.edit |
| PUT/PATCH | /categories/{category} | update | categories.update |
| DELETE | /categories/{category} | destroy | categories.destroy |
+-----------+-----------------------------+---------+--------------------+
Route group yaptığınız yerde de prefix('admin') yerine prefix('admin.') yazın, yani admin kelimesinden sonra bir nokta koyun. Böylece örneğin categories.index olan rota adı admin.categories.index olacak.