При создании контроллера Laravel 6 обнаружено странное поведение.
У меня есть два маршрута с именем
Route::resource('role', 'RoleController')->middleware('verified');
Route::resource('category', 'MainCategoryController')->middleware('verified');
Оба работают нормально. В обоих контроллерах у меня есть метод редактирования
RoleController
public function edit(Role $role)
{
$permissions = Permission::get();
$users = User::get();
return view('roles.edit', compact('role', 'permissions', 'users'));
}
MainCategoryController
public function edit($mainCategory)
{
$mainCategory = MainCategory::findOrFail($mainCategory);
// dd($mainCategory);
return view('categories.edit', compact('mainCategory'));
}
Моя проблема в том, что если я использую в MainCategoryController.edit в качестве аргумента MainCategory $ mainCategroy это не дает мне данные модели, а выглядит так. В обычных случаях, если он не может найти модель, это маршруты на 404.
App\MainCategory {#471 ▼
#guarded: []
#connection: null
#table: null
#primaryKey: "id"
#keyType: "int"
+incrementing: true
#with: []
#withCount: []
#perPage: 15
+exists: false
+wasRecentlyCreated: false
#attributes: []
#original: []
#changes: []
#casts: []
#dates: array:1 [▶]
#dateFormat: null
#appends: []
#dispatchesEvents: []
#observables: []
#relations: []
#touches: []
+timestamps: true
#hidden: []
#visible: []
#fillable: []
#forceDeleting: false
}
Если я запрашиваю данные модели, как в функции выше, все работает нормально. В RoleController.edit он работает нормально, и я получаю запрошенные данные.
Я не знаю, почему он работает в Role, а не в MainCategory.
Может быть, у кого-то есть идея, что Я ошибся здесь, потому что не могу понять свою ошибку.