【问题标题】:ErrorException Missing required parameters laravelErrorException 缺少必需的参数 laravel
【发布时间】:2017-12-27 18:14:15
【问题描述】:

我在修改视图的路线时遇到了问题。我想代替 /company/id 显示 /company/id/name

路线:

Route::get('/company/{id}/{name}', 'PagesController@showCompany')->name('company.detail');

在控制器中显示方法:

public function showCompany($id){
        $company = Company::find($id);
        return view('company.show')->with('company', $company);
    }

并且在视图中 $companies 来自搜索控制器 - 它应该获得带有打开视图的链接的结果

 @foreach($companies as $company)
                <a href="{{route('company.detail', $company->id, $company->company_name)}}">Show detail </a>
 @endforeach

如果只使用像 /company/id 这样的 id 有效。我错了什么?

【问题讨论】:

  • 从外观上看,您还没有更新您的控制器以接受{name}
  • @JonStirling 你的意思是什么?你的意思是这样设置 showCompany($id,$name) ?

标签: php laravel-5


【解决方案1】:

一种简单而优雅的方式(我认为)是:

{{route('company.detail', ['id' => $company->id, 'name' => strtolower(preg_replace('/[^A-Za-z0-9-]+/', '-', $company->company_name))}}

您可以有一个友好的网址名称。我确信那里有更好的解决方案。

如果路由中有更多参数,您可以使用关联数组并使用值初始化每个参数名称。

控制器现在和id是一样的。

【讨论】:

    猜你喜欢
    • 2020-09-27
    • 1970-01-01
    • 1970-01-01
    • 2021-01-31
    • 2021-07-20
    • 1970-01-01
    • 2021-11-15
    • 2020-05-07
    • 2021-11-06
    相关资源
    最近更新 更多