我得到了休眠错误。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发布于 2020-11-28 05:53:33
您必须将控制器方法的类型提示参数与路由参数名称相匹配,在本例中,它将是Admin。因此,您的edit方法需要:
public function edit(User $Admin)
{
return view('Admin.edit', ['user' => $Admin, ...]);
}此时,您将获得一个不存在的User模型实例作为依赖注入,而不是路由模型绑定,因为Admin与$user不匹配。因此,您将一个null值传递给route帮助器:
route(..., $user);因为$user是一个不存在的模型实例,所以它的"id“是null,您不能将nulls传递给路由帮助器。
https://stackoverflow.com/questions/65044112
复制相似问题