在数据库中存在名称? Laravel

时间:2014-07-11 12:53:26

标签: php mysql database laravel exists

我在该表中有一个名为categories的数据库表,我有以下字段:
idnamedescriptionurlname

如果网址正确,我想查看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变量?

由于

2 个答案:

答案 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文件保持简单,但它也允许您使用路由缓存。