我在该表中有一个名为categories
的数据库表,我有以下字段:
id
,name
,description
和urlname
如果网址正确,我想查看route.php
文件:
Route::get('products/{cat}' ,function($cat){
$objCat = new Category;
if($objCat-> ??? ){
return View::make('products')->with('cat', $cat);
}else{
return View::make('notfound')->with('cat', $cat);
}
});
我如何在???
的地方检查$cat
表中的urlname
字段中是否存在categories
变量?
由于
答案 0 :(得分:1)
不要实例化Category对象。 您可以执行以下操作:
$model = Category::where('id', '=', $cat)->firstOrFail();
并使用重定向注册例外
use Illuminate\Database\Eloquent\ModelNotFoundException;
App::error(function(ModelNotFoundException $e)
{
return Response::make('Not Found', 404);
});
此处还有一篇关于laravel中错误处理的文章:http://fideloper.com/laravel4-error-handling
答案 1 :(得分:0)
这可以做你想要的:
Route::get('products/{urlName}', function ($urlName) {
$objCat = Category::where('urlname', $urlName)->first();
if ($objCat)
return View::make('products')->with('cat', $objCat);
else
return View::make('notfound')->with('cat', $objCat);
});
一些编程风格的建议......我建议避免使用缩写来使代码更加清晰("类别"而不是" cat")。我还建议使用控制器,而不是将您的代码放在routes.php的function()块中。这将有助于您更好地组织代码并使routes.php文件保持简单,但它也允许您使用路由缓存。