我正在尝试找到一种简单的方法来获取记录的ID(使用slug选择),这样我就可以用它来查询此记录的子项(父/子相关)。
$product = Products::where('url','the-slug')->get();
现在我可以使用该集合来获取id并继续查询孩子们。
有更简单的方法吗?
并...
我可以单独通过slug查询孩子吗?
答案 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;