I'm learning Laravel I am creating a form to edit the names of permissions within the Database. I created the page permission-edit.blade.php I added it to the web.php is linked with the page permissions.blade.php. The display works without any problems. I added the script to change the name of the permission, but when I press the save button the name is not changed.I also set the controls within the controller, but the changes are not saved. where am I going wrong?
permission-edit.blade.php
@extends('layouts.app', ['class' => 'g-sidenav-show bg-gray-100'])
@section('content')
@include('layouts.navbars.auth.topnav', ['title' => 'Permission'])
<div class="container-fluid py-4">
<div class="row">
<div class="col-12">
<div class="card mt-4">
<div class="card-header pb-0 p-3">
<div class="row">
<div class="col-6 d-flex align-items-center">
<form method="POST" action="{{ route('permission.update', $permission) }}">
@csrf
@method('POST')
<h6 class="mb-0">Permission</h6>
</div>
<div class="col-6 text-end">
</div>
</div>
</div>
<div class="card-body p-3">
<div class="row">
<div class="col-md-6 mb-md-0 mb-4">
<input type="text" id="name" name="name" class="card border border-radius-lg d-flex align-items-center flex-row" value="{{ $permission->name }}" />
</div>
</div>
<input type="submit" value="Save" class="btn bg-gradient-dark mt-5">
</form>
</div>
</div>
</div>
</ul>
</div>
@include('layouts.footers.auth.footer')
</div>
@endsection
Permission Controller
<?php
namespace App\Http\Controllers;
use App\Http\Controllers\Controller;
use Illuminate\Http\Request;
use Spatie\Permission\Models\Permission;
class PermissionController extends Controller
{
public function permissions()
{
$permissions = Permission::all();
return view("pages.permission", compact('permissions'));
}
public function create()
{
return view('pages.permission-create');
}
public function store(Request $request)
{
$validated = $request->validate(['name' => 'required']);
Permission::create($validated);
return to_route('permissions');
}
public function edit(Permission $permission)
{
return view('pages.permission-edit', compact('permission'));
}
public function update(Request $request, Permission $permission)
{
$validated = $request->validate(['name' => 'required']);
$permission->update($validated);
return to_route('permissions')->with('message', 'Permission updated.');;
}
}
web.php
<?php
use App\Http\Controllers\ProfileController;
use App\Http\Controllers\IndexController;
use Illuminate\Support\Facades\Route;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider and all of them will
| be assigned to the "web" middleware group. Make something great!
|
*/
require __DIR__.'/auth.php';
use App\Http\Controllers\HomeController;
use App\Http\Controllers\PageController;
use App\Http\Controllers\RegisterController;
use App\Http\Controllers\LoginController;
use App\Http\Controllers\UserProfileController;
use App\Http\Controllers\ResetPassword;
use App\Http\Controllers\ChangePassword;
use App\Http\Controllers\UserController;
use App\Http\Controllers\PermissionController;
use App\Http\Controllers\RoleController;
Route::get('/', function () {return redirect('/welcome');})->middleware('guest')->name('register');;
Route::get('/register', [RegisterController::class, 'create'])->middleware('guest')->name('register');
Route::post('/register', [RegisterController::class, 'store'])->middleware('guest')->name('register.perform');
Route::get('/login', [LoginController::class, 'show'])->middleware('guest')->name('login');
Route::post('/login', [LoginController::class, 'login'])->middleware('guest')->name('login.perform');
Route::get('/reset-password', [ResetPassword::class, 'show'])->middleware('guest')->name('reset-password');
Route::post('/reset-password', [ResetPassword::class, 'send'])->middleware('guest')->name('reset.perform');
Route::get('/change-password', [ChangePassword::class, 'show'])->middleware('guest')->name('change-password');
Route::post('/change-password', [ChangePassword::class, 'update'])->middleware('guest')->name('change.perform');
Route::get('/welcome', [HomeController::class, 'index'])->name('home');
Route::group(['middleware' => ['role:admin']], function () {
Route::get('/roles', [RoleController::class, 'roles'])->name('roles');
Route::get('/role-create', [RoleController::class, 'create'])->name('role-create');
Route::post('/roles', [App\Http\Controllers\RoleController::class, 'store'])->name('role.store');
Route::get('/role-edit', [App\Http\Controllers\RoleController::class, 'edit'])->name('role-edit');
Route::get('/permissions', [PermissionController::class, 'permissions'])->name('permissions');
Route::get('/permission-edit', [App\Http\Controllers\PermissionController::class, 'edit'])->name('permission-edit');
Route::get('/permission-create', [PermissionController::class, 'create'])->name('permission-create');
Route::post('/permissions', [App\Http\Controllers\PermissionController::class, 'store'])->name('permission.store');
Route::post('/permissions-edit', [PermissionController::class, 'update'])->name('permission.update');
Route::get('/dashboard', [PageController::class, 'dashboard'])->name('dashboard');
Route::get('/user-management', [UserController::class, 'userman'])->name('user-management');
});
Route::group(['middleware' => 'auth'], function () {
Route::get('/index', [PageController::class, 'vr'])->name('index');
Route::get('/mydashboard', [PageController::class, 'mydb'])->name('mydashboard');
Route::get('/tables', [PageController::class, 'tables'])->name('tables');
Route::get('/rtl', [PageController::class, 'rtl'])->name('rtl');
Route::get('/profile', [UserProfileController::class, 'show'])->name('profile');
Route::post('/profile', [UserProfileController::class, 'update'])->name('profile.update');
Route::get('/profile-static', [PageController::class, 'profile'])->name('profile-static');
Route::get('/sign-in-static', [PageController::class, 'signin'])->name('sign-in-static');
Route::get('/sign-up-static', [PageController::class, 'signup'])->name('sign-up-static');
Route::get('/{page}', [PageController::class, 'mydashboard'])->name('page');
Route::post('logout', [LoginController::class, 'logout'])->name('logout');
});
I hope to find a solution. I have been checking the code for 2 days and cannot find the error, it seems that the page is not communicating with the Database.
Thanks for the solution!