我在这里有点笨拙。我设法使用下面的代码来创建动态网址:Laravel - 使用数据库字符串创建动态URL
首页控制器
$satellites = DB::table('satellites')->get();
return view('pages/home', ['satellites' => $satellites]);
刀片文件
@foreach($satellites as $satellite)
<a href="{{$satellite->norad_cat_id}}"><li>{{$satellite->satname}}</li></a>
@endforeach
web.php
Route::get('{norad_cat_id}', '[email protected]');
控制器
public function show($norad_cat_id)
{
return view('pages/satellite');
}
生成的URL是:mysite.com/12345(其中12345是norad_cat_id)。
此代码管理使用数据库中的norad_cat_id创建动态URL - 这正是我想要的。问题是我可以用任何东西来替换URL,它仍然会创建一个页面(即,用非数据库中的东西代替12345,并且仍然创建一个页面)。
我想要的仅仅是用norad_cat_id生成一个URL,并且如果数据库中没有匹配的norad_cat_id,则显示一个404页面。
好,你把任何norad_cat_id呈现网页。您应该实际从数据库加载对象并将其传递给模板。 laravel还可以检查ID是否存在。在文档中查找它。 –