【发布时间】:2021-03-10 15:16:19
【问题描述】:
我得到了休闲错误。 Missing required parameters for [Route: Admin.update] [URI: Admin/{Admin}]. 只有当我评论edit.blade 的形式时它才会消失。我检查了我做错了什么,但找不到。
我还检查了我的 web.php,但我怀疑它是从那里传来的。
如果有人能看到错误,我会很高兴。
这是我的路线,
<?php
use Illuminate\Support\Facades\Route;
use Illuminate\Support\Facades\Auth;
use App\Http\Controllers\AdminController;
Route::get('/', function () {
return view('welcome');
});
Auth::routes();
Route::get('/home', [App\Http\Controllers\HomeController::class, 'index'])->name('home');
Route::resource('Admin', AdminController::class);
这是我的管理员
<?php
/**
* Show the form for editing the specified resource.
*
* @param \App\Models\User $user
* @return \Illuminate\Contracts\Foundation\Application|\Illuminate\Contracts\View\Factory|\Illuminate\Contracts\View\View
*/
public function edit(User $user)
{
$roles = Role::all();
return view('Admin.edit', [ 'user' => $user, 'roles' => $roles]);
}
/**
* Update the specified resource in storage.
*
* @param \Illuminate\Http\Request $request
* @param \App\Models\User $user
* @return \Illuminate\Http\RedirectResponse
*/
public function update(Request $request, User $user)
{
// $user->roles()->sync($request->roles);
//
// return redirect()->route('Admin.index');
}
}
这是我的编辑刀片。
@extends('layouts.app')
@section('content')
<div class="admin-first-page">
<div class="container">
<h2>User edit page</h2>
<p> Lorem ipsum dolor sit amet, consectetur adipisicing elit. Aliquam amet aperiam blanditiis consequatur dolore id iste itaque nisi officia reiciendis! Distinctio dolor dolore doloremque esse impedit, iusto nostrum quidem vitae?</p>
<form action="{{ route('Admin.update', $user) }}" method="post">
@method('PUT')
@csrf
@foreach($roles as $role)
<input type="checkbox" name="roles[]" value="{{$role->id}}">
<label>{{ $role->name }}</label>
@endforeach
<button type="submit" class="btn btn-primary">
Update
</button>
</form>
</div>
</div>
@endsection
【问题讨论】:
-
你能提供这条路线的路线定义吗?
-
@lagbox 我更新了帖子。
-
以下答案的关键是知道
Route::resource('Admin', AdminController::class);创建了类似Route::get('/admins/{admin}/edit', [AdminController::class, 'edit'])->name('admins.edit');的路由,并注意占位符的名称是“admin”而不是“user”
标签: laravel