Php exists方法在用于检查行存在性的laravel中无法按预期工作
我正在开发一个小的RESTAPI,在我的控制器中,只有当Php exists方法在用于检查行存在性的laravel中无法按预期工作,php,laravel,Php,Laravel,我正在开发一个小的RESTAPI,在我的控制器中,只有当$object->exists()返回1时,json响应才会工作,但在其他情况下,它会发送错误 这是我的密码: public function show($id) { $category=Category::find($id); return response()->json( ($category->exists()?$category:["message"=>
$object->exists()
返回1
时,json
响应才会工作,但在其他情况下,它会发送错误
这是我的密码:
public function show($id)
{
$category=Category::find($id);
return response()->json(
($category->exists()?$category:["message"=>"not found"])
);
}
当找到该类别时,我将以json格式返回该行
,对于false
情况不起作用。
我首先要做的是,在出现错误的情况下
返回消息并编码404代码状态
,如下所示:
public function show($id)
{
$category=Category::find($id);
return response()->json(
($category->exists()?$category:(["message"=>"not found"],404))
);
}
但是,当我的代码似乎写得很好时,也没有任何效果,而且我在destroy方法中遇到了完全相同的问题:
public function destroy($id)
{
$category=Category::find($id);
if($category->exists()){
$category->delete();
return response()->json(array("message"="category deleted","success"=>true));
}
return response()->json(array("message"=>"Not found"),404);
}
使用Category::find($id)当记录实际存在于数据库中时,code>将返回一个类别
对象。但是,如果记录不存在,它将返回null
。因此,您试图调用null
上的函数exists()
,这是不可能的
最好检查变量是否具有值null
,如果您使用的是php7,则使用a
$category = Category::find($id);
return response()->json(
$category ?? ["message" => "not found"],
404
);
使用Category::find($id)当记录实际存在于数据库中时,code>将返回一个类别
对象。但是,如果记录不存在,它将返回null
。因此,您试图调用null
上的函数exists()
,这是不可能的
最好检查变量是否具有值null
,如果您使用的是php7,则使用a
$category = Category::find($id);
return response()->json(
$category ?? ["message" => "not found"],
404
);
exists()
是一个生成器方法,您正在模型实例上执行它
因为您已经从数据库中获取了模型实例,所以您可以检查它是否为空。您可以执行以下操作:
empty($category) ? ["message"=>"not found"] : $category
exists()
是一个生成器方法,您正在模型实例上执行它
因为您已经从数据库中获取了模型实例,所以您可以检查它是否为空。您可以执行以下操作:
empty($category) ? ["message"=>"not found"] : $category
我首先要做的是,在出现错误的情况下返回
消息和代码404代码状态类似于以下代码
findOrFail()
方法正好适用于这种情况:
公共功能显示($id)
{
$category=category::findOrFail($id);
返回$category;
}
如果没有找到模型,findOrFail()
将抛出ModelNotFoundException,导致返回404
我首先要做的是,在出现错误的情况下返回
消息和代码404代码状态类似于以下代码
findOrFail()
方法正好适用于这种情况:
公共功能显示($id)
{
$category=category::findOrFail($id);
返回$category;
}
如果找不到模型,findOrFail()
将抛出ModelNotFoundException,导致返回404。Laravel有现成的方法findOrFail
,那么为什么您要如此努力地实现它呢