Laravel 7 缺少必需的参数

Laravel 7 Missing required parameters

所以无论我做什么,我都会不断收到这个错误。我没有得到这个错误的唯一方法是不调用控制器函数。

Route::get('/station/{id}/edit', [StationController::class, 'showStationEdit'])->name('editStation');

在 HTML 我有

href="{{ route('editStation', $stationId) }}

我也试过

href="{{ route('editStation', ['id' => $stationId] ) }}"

最后是函数本身

public function showStationEdit($id) {}

而且无论我做什么 change/do 我都会得到这个错误

Missing required parameters for [Route: editStation] [URI: station/{id}/edit]. 

这是我正在调用的URL

127.0.0.1/station/1/edit

但是当我使用下面的代码时它起作用了..>

Route::get('/station/{id}/edit', function($id) {
//.. something
})->name('editStation');

您可以更改推荐人类型。 例如,您可以这样在 ENV 文件中描述您的网站名称:

application_url = 'yourdomain.com or local ip http://127.0.0.1'

然后,您可以像这样在 html 上调用 url:

href="{{env('application_url')}}/145/edit"

你可以这样描述你的路线:

Route::get('/station/{id}/edit', [StationController::class, 'showStationEdit']);

或者像这样直接使用你的 href,如果你在本地工作,你的 IP 很重要:

href="http://127.0.0.1/1254/edit"

我希望它能解决您的问题。

这里有一些变化,不确定是什么导致了你的问题,但这是有效的:

路线

Route::get('/station/{id}/edit', 'StationController@showStationEdit')->name('editStation');

控制器

class StationController extends Controller
{
    public function showStationEdit($id) {
        return view('edit', ['id' => $id]);
    }
}

查看:(edit.blade.php)

The id is: {{ $id }}

HTML

<a href="{{ route('editStation', 5) }}">Test</a>