我有带show功能的控制器:
class CssController extends BaseController
{
public function show($id)
{
$csstablepost = CssTable::findOrFail($id);
return View::make('posts/csspost1', compact('csstablepost'));
}
}
我的路线:
Route::get('/css3/{id}', 'CssController@show' );
一切正常,核心ID正在路上,但我希望在我的路线中获得$ title。我在数据库中有title和id列。如果我将所有ID更改为标题,但为什么我的路由不使用标题?有没有办法,在路线名称中获得我的头衔?
答案 0 :(得分:1)
我假设您要将查询更改为CssTable::findOrFail($title);
,findOrFail()
会查找您桌面上的PK。您也希望将此更改为CssTable::where('title', '=', $title)->firstOrFail();
。
完整示例:
class CssController extends BaseController
{
public function show($title)
{
$csstablepost = CssTable::where('title', '=', $title)->firstOrFail();
return View::make('posts/csspost1', compact('csstablepost'));
}
}
Route::get('/css3/{title}', 'CssController@show');
查看更多documentation。
答案 1 :(得分:0)
尝试使用以下代码 -
class CssController extends BaseController
{
public function show($id)
{
$csstablepost = CssTable::where('id', '=', $id)->first();
return View::make('posts/csspost1')->with('csstablepost', $csstablepost);
}
}
现在转到路线页面 -
Route::get('css3/{title}', 'CssController@show');
希望,它会奏效。