我有一个使用yajrabox包的数据表,其中包含各种字符串的链接。当我点击一个链接时,它会带我到一个带有“/ teams /”字符串的404页面。我如何使这个字符串成为一个可查看的页面?我尝试过使用一个slug,但我可能会错误地使用它并且老实说我不知道我的错误在哪里。这是我的代码的部分内容:
路线:
Route::get('/teams/display/{$slug}', 'TeamsController@display');
TeamsController:
public function display($slug)
{
$teamdatas = LoserData::findBySlugOrFail($slug);
return view('teams/display', compact('teamdatas'));
}
DataTable.blade
{data: 'homeTeam', name: 'homeTeam', "fnCreatedCell": function (nTd, sData, oData, iRow, iCol) {
$(nTd).html("<a href=/teams/display/"+oData.homeTeam+">"+oData.homeTeam+"</a>");
}},
团队/ display.blade.php
<div class="container">
<div class="row">
<div class="col-sm-8">
<h1> Welcome the {{$teamdatas->slug}} profile page</h1>
</div>
</div>
我想我应该检查路由文档,因为它肯定是一个路由问题。要解决它,请将其放入您的路线中:
Route::get('/teams/display/{teamdatas?}', 'TeamsController@display', function ($teamdatas = 'Oilers-84') {
return $teamdatas;
});
以下是Laravel Docs 5.5中的信息:
可选参数有时,您可能需要指定路由参数,但可以选择存在该路由参数。您可以通过放置一个?在参数名称后面标记。确保为路由的相应变量赋予默认值:
Route::get('user/{name?}', function ($name = null) {
return $name;
});
Route::get('user/{name?}', function ($name = 'John') {
return $name;
});