我正在使用 PHP Laravel 5.8 创建编辑页面。我已经创建了路线和 url,但出现错误 404 not found

I am creating edit page using PHP Laravel 5.8. I have created routes and url, but error 404 not found shows up

我正在通过构建求职门户应用来学习 Laravel。我正在为公司编写代码以编辑他们的 post。 现在我可以去 url,例如)http://localhost:8000/jobs/23/edit。但是在屏幕上显示 404|not found 错误消息

This is an screen shot

对于编辑页面,我创建了 views/jobs/edit.blade.php。

当然,我的作业中明明插入了数据table。

我尝试清除所有缓存并执行以下命令。

1. composer dump-autoload

2. php artisan clear-compiled

3. php artisan optimize

4. php artisan config:cache

web.php

Route::get('/jobs/{id}/edit', 'JobController@edit')->name('job.edit');

JobController.php

public function edit($id)
{
    $jobs = Job::findOrFail($id);
    return view('jobs.myjob',compact('jobs'));
}

我的工作。blade.php 我有一个编辑按钮,下面的代码是 link 它有。

{{route('job.edit',[$job->id])}}

我的环境是 Windows、XAMPP 和本地 MySQL 服务器。

尝试这种方式:

<a href="{{route('job.edit',['id'=>$job->id])}}">Edit Job {{$job->id}}</a>

您可以通过以下方式清除路由缓存:

php artisan route:clear

更新:运行 以下命令清除缓存

php artisan config:clear
php artisan cache:clear

终于可以解决这个问题了

  1. 我换了一条新路线

    Route::get('/test-jobs/{id}/edit', 'JobController@edit')->name('test-job.edit');

  2. 我这样创建了新的blade.php,views/test-jobs/edit。blade.php

  3. 我也改了JobController.php

    public 函数编辑($id){ $jobs = Job::findOrFail($id); return视图('test-jobs.edit',紧凑('jobs')); }

最后,my-job.blade.php 有一个这样的编辑按钮。

 <a href="{{route('test-jobs.edit',[$job->id])}}"><button class="btn btn-dark">Edit</button></a>

但是,我仍然不知道它为什么起作用。

而且,我想我需要另一种解决方案。因为这样的话,我需要在views中再新建一个文件夹。

因此,如果有人知道其他解决方案,请告诉我。 谢谢。

问题可能出在您的 JobController.php 中的 return view('jobs.myjob',compact('jobs')); 行,它 returns 以下视图:resources/views/jobs/myjob.blade.php(可能不存在)。

尝试将行 return view('jobs.myjob',compact('jobs')); 更改为 return view('jobs.edit',compact('jobs'));,更改后它指向 resources/views/jobs/edit.blade.php,这应该可以解决您的问题。