路线Laravel 5.7中缺少必需的参数

时间:2018-11-19 13:22:45

标签: routes laravel-5.7

这可能是什么问题:

路线

Route::get('admin/view-news/{id}', 'AdminNewsController@show')->name('admin.view-news');

控制器

public function index()
    {
        $news = News::all();
        return view('admin.news.news');
    }

public function show($id)
    {
        $news = News::Find($id);
        return view('admin.news.view_news')->with('news', $news);

在控制器中,我也尝试这样做:

    `return view('admin.news.view_news', ['news' => News::findOrFail($id)])`;

视图

{{路线('admin.view-news')}}

一个重要的注意事项是,对于用户而言,几乎相同的事情正在起作用:

路线:

Route::get('/user/{id}', 'UsersController@show');

控制器:

public function index()
    {
        $users = User::orderBy('name', 'asc')->paginate(30);

        return view('admin.users.users')->with('users', $users);
    }


 public function show($id)
    {
        $user = User::find($id);

        return view('admin.users.view_user')->with('user', $user);
    }

错误是:

缺少[Route:admin.view-news] [URI:admin / view-news / {id}]所需的参数。

我在这里想念的是什么,我怎么没有获取ID,并且在用户控制器中我用几乎相同的代码来做?谢谢。

2 个答案:

答案 0 :(得分:0)

您应该尝试这个

{{ route('admin.view-news', $id) }}

代替

{{ route('admin.view-news') }}

答案 1 :(得分:0)

这对我有用:

Route::get('admin/view-news/{id?}', 'AdminNewsController@show')->name('admin.view-news');

视图:

{{ route ('admin.view-news', ['id'=> $id ]) }}