如果我的additional_infos表包含一些在这种情况下为空的东西,联系人,姓名和地址,我正试图将用户重定向到另一个页面。
我现在做了类似的事情:
但即使填写了联系人,姓名和地址,它仍会将我重定向到另一页。有人能帮我吗?提前致谢
public function test(Request $request){
$additional_info = DB::table('additional_infos') ->where('address',NULL)->orWhere('name', NULL)->orWhere('number')->get();
//request input //ignore this part
if( $additional_info) {
return redirect(url('/user/showupdate6/'.$id->id.'/edit6') );
} else {
return redirect('/home');
}
}
如果我的数据名称,联系人和地址已填写,我希望它将我重定向到主页。如果我的数据名称,联系人和地址为空,我希望它将我重定向到此网址,url('/user/showupdate6/'.$id->id.'/edit6')
答案 0 :(得分:4)
你将永远不会得到null,以便你可以测试它,如果这样if( $additional_info)
它将alawys评估为true,因为它将始终返回一个集合,即使没有元素在满足条件的情况下,它将返回一个空集合而不是null。
您有三种选择:
使用->get()
并在if statment ->count()
if($additional_info->count())
将->get()
改为->first()
并离开if($additional_info)
将->get()
替换为->count()
和if($additional_info > 0)
使用whereNull
和orWhereNull
这样尝试:
public function test(Request $request){
$additional_info = DB::table('additional_infos')
->whereNull('address')
->orWhereNull('name')
->orWhereNull('number')
->get();
//request input //ignore this part
if( $additional_info->count())
return redirect(url('/user/showupdate6/'.$id->id.'/edit6') );
else{
return redirect('/home');
}
答案 1 :(得分:0)
尝试将您的查询转换为SQL,以检查您首先使用数据库做什么
$additional_info = DB::table('additional_infos')->where('address',NULL)->orWhere('name', NULL)->orWhere('number')->toSql();
dd($additional_info);