Php 确保不存在变量';不要破译密码
我在数据库中搜索一个代码,如果我找到了它,那么我将搜索与此代码连接的结果,毕竟我正在更改两个记录的状态并保存它们 问题是相当基本的,我不确定如何验证这些变量,以确保它们在为空时不会破坏任何东西。我确信这个if语句会起作用,但似乎不会Php 确保不存在变量';不要破译密码,php,laravel,Php,Laravel,我在数据库中搜索一个代码,如果我找到了它,那么我将搜索与此代码连接的结果,毕竟我正在更改两个记录的状态并保存它们 问题是相当基本的,我不确定如何验证这些变量,以确保它们在为空时不会破坏任何东西。我确信这个if语句会起作用,但似乎不会 $code = self::where('h_id', '=', $id)->first(); if($code) { $outcome = Outcome::where('code_id', '', $code->id)->first(
$code = self::where('h_id', '=', $id)->first();
if($code) {
$outcome = Outcome::where('code_id', '', $code->id)->first();
}
if($outcome) {
$code->status = 1;
$outcome->status = 1;
$code->save();
$outcome->save();
}
使用:
$code=self::where('h_id','=',$id)->first();
if(空($code))die();//不管你怎么处理错误
$output=output::where('code_id','',$code->id)->first();
if(空($output))die();//不管你怎么处理错误
$code->status=1;
$outcome->status=1;
$code->save();
$outcome->save();
您可以使用die
终止脚本,指定默认值,或者根据最终目标执行完全不同的操作。使用:
$code=self::where('h_id','=',$id)->first();
if(空($code))die();//不管你怎么处理错误
$output=output::where('code_id','',$code->id)->first();
if(空($output))die();//不管你怎么处理错误
$code->status=1;
$outcome->status=1;
$code->save();
$outcome->save();
您可以使用
die
终止脚本,指定一个默认值,或者根据您的最终目标做一些完全不同的事情。明确的方法是,如果找不到给定的参数,检查有说服力的数据库请求是否返回null
,就像Laravel返回null
一样
如果要检查x=y
,也不需要指定第二个参数,您可以这样做
if($code) {
$outcome = Outcome::where('code_id', $code->id)->first();
}
结果出来后,你可以简单地检查一下
if($outcome !== null) {
$code->status = 1;
$outcome->status = 1;
$code->save();
$outcome->save();
}
如果变量不等于null,则已找到具有该特定参数的给定模型
希望这能有所帮助。如果找不到给定的参数,显式的方法是检查有说服力的数据库请求是否返回
null
,因为Laravel返回null
如果要检查x=y
,也不需要指定第二个参数,您可以这样做
if($code) {
$outcome = Outcome::where('code_id', $code->id)->first();
}
结果出来后,你可以简单地检查一下
if($outcome !== null) {
$code->status = 1;
$outcome->status = 1;
$code->save();
$outcome->save();
}
如果变量不等于null,则已找到具有该特定参数的给定模型
希望这有帮助。我认为你们的模型是一对一的关系。如果是这样,您可以尝试下面的代码
$data = self::with(['outcome'])->whereHas('outcome')->where('h_id', '=', $id)->first();
if($data){
$data->status = 1;
data->outcome->status = 1;
$data->save();
data->outcome->save();}
我认为你们的模特是一对一的关系。如果是这样,您可以尝试下面的代码
$data = self::with(['outcome'])->whereHas('outcome')->where('h_id', '=', $id)->first();
if($data){
$data->status = 1;
data->outcome->status = 1;
$data->save();
data->outcome->save();}
我建议使用
is\u null()
而不是empty()
为什么@Fitzi?根据php文档,如果变量等于空字符串、数组、0整数、0.0浮点、false和null,则empty将返回true。这使得这个代码非常好,因为它更明确。此外,无需检查null
以外的任何内容,因为first()
会返回一个对象或null
。我最初使用的是isset
,但在OP声明他们希望“空时不破坏任何内容”时对其进行了更改。我建议使用is\u null()
而不是empty()
为什么@Fitzi?根据php文档,如果变量等于空字符串、数组、0整数、0.0浮点、false和null,则empty将返回true。这使得这个代码非常好,因为它更明确。此外,无需检查除null
之外的任何内容,因为first()
会返回一个对象或null
。我最初使用的是isset
,但后来更改了它,因为OP声明他们希望“在它们为空时不破坏任何东西”。这是正确的,看起来它返回null。谢谢,这是正确的,看起来它返回空值。谢谢你这也感觉像是一个可以处理得更好的案件:)这也感觉像是一个可以处理得更好的案件:)