Laravel 7缺少必需的参数

时间:2020-10-31 20:13:59

标签: php laravel laravel-7

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

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

在HTML中,我有

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

我也尝试过

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

最后是函数本身

public function showStationEdit($id) {}

无论我更改/得到此错误

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');

2 个答案:

答案 0 :(得分:2)

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

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

然后,您可以像这样在html上计算您的网址:

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

,您可以像这样描述您的路线:

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

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

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

我希望它能回答您解决问题的方式。

答案 1 :(得分:1)

此处有一些更改,不确定到底是什么引起了您的问题,但这是可行的:

路线

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>