Laravel 5轻松获取使用slug选择的记录的id

时间:2015-03-16 12:56:51

标签: laravel orm eloquent laravel-5

我正在尝试找到一种简单的方法来获取记录的ID(使用slug选择),这样我就可以用它来查询此记录的子项(父/子相关)。

$product = Products::where('url','the-slug')->get();

现在我可以使用该集合来获取id并继续查询孩子们。

有更简单的方法吗?

并...

我可以单独通过slug查询孩子吗?

3 个答案:

答案 0 :(得分:10)

您应使用first()->id方法代替pluck()

$productId = Products::where('url', 'the-slug')->pluck('id');

pluck()的优势在于,如果找不到产品,则会返回null,而first()->id会产生错误,因为first()会返回null而您无法访问非对象的属性。


作为替代方案,当没有符合您条件的行时,您可以使用firstOrFail抛出ModelNotFoundException

$productId = Products::where('url', 'the-slug')->firstOrFail()->id;

你当然也可以自己检查一下:

$product = Products::where('url', 'the-slug')->first();
if($product !== null){
    // product found, proceed
}

答案 1 :(得分:1)

$productId = Products::where('url', 'the-slug')->first()->id;

答案 2 :(得分:0)

此功能为您提供所需的产品......

function findByProductId() {
    $productId = Products::where('url', 'the-slug')
                           ->pluck('id');
}
return $productId;