@编辑路由没有创建。一切都很好,但显示404没有发现问题是在最后一条路线。我运行了路由:列表代码,但没有显示任何名为/profile/{user}/edit的路由,web.php代码->>>>>
<?php
use Illuminate\Support\Facades\Route;
use App\Http\Controllers\ProfilesController;
/*
|--------------------------------------------------------------------------
| Web Routes
|--------------------------------------------------------------------------
|
| Here is where you can register web routes for your application. These
| routes are loaded by the RouteServiceProvider within a group which
| contains the "web" middleware group. Now create something great!
|
*/
Route::get('/', function () {
return view('welcome');
});
Auth::routes();
Route::get('/p/{post}','App\Http\Controllers\PostsController@show');
Route::get('/p/create','App\Http\Controllers\PostsController@create');
Route::post('/p','App\Http\Controllers\PostsController@store');
Route::get('/profile/{user}', [App\Http\Controllers\ProfilesController::class, 'index'])->name('profile.show');
Route::get('/profile/{user}/edit','ProfilesController@edit')->name('profile.edit');配置文件控制器代码->>>>>
<?php
namespace App\Http\Controllers;
use App\Models\User;
use Illuminate\Http\Request;
class ProfilesController extends Controller
{
public function edit(User $user)
{
return view('profiles.edit', compact('user'));
}
public function index(User $user)
{
return view('profiles.index', compact('user'));
}
}index.blade.php代码->
@extends('layouts.app')
@section('content')
<div class="container">
<div><h1>here is a big design</h1></div>
<br>
<div class="d-flex justify-content-between align-items-baseline">
<h1>{{ $user->username}}</h1>
<a href="/p/create">Add New Post</a>
</div>
<a href="/profile/{{ $user->id }}/edit">Edit Profile</a>
<div class="pr-5"><strong>{{$user->posts->count()}}</strong> posts</div>
<div class="pr-5"><strong></strong> followers</div>
<div class="pr-5"><strong></strong> following</div>
<br>
<div><h1>{{ $user->profile->title}}</h1></div>
<br>
<div><h1>{{ $user->profile->description}}</h1></div>
<br>
<div><h1>{{ $user->profile->url ?? 'N/A'}}</h1></div>
<h1>Posts</h1>
<hr>
<div class="row pt-5">
@foreach($user->posts as $post)
<div class="col-4 pb-4">
<a href="/p/{{$post->id}}">
<img src="/storage/{{$post->image}}" class="w-100">
</a>
</div>
@endforeach
</div>
</div>
@endsection发布于 2021-04-01 13:58:40
改变你的路线
Route::get('/profile/{user}/edit',[ProfilesController::class, 'edit'])->name('profile.edit');您的方式'ProfilesController@edit'没有考虑到use App\Http\Controllers\ProfilesController;。
非主题建议:既然您已经命名了您的路径,我建议您在刀片文件中使用指定的路径,而不是硬编码它们:
<a href="{{ route('profile.edit', $user) }}">Edit Profile</a>而不是
<a href="/profile/{{ $user->id }}/edit">Edit Profile</a>这样,如果您决定稍后更改一个URL,您只需要在web.php文件中更改它一次,而不是所有硬编码的出现。
https://stackoverflow.com/questions/66905854
复制相似问题