首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >当另一个表laravel中的值为null时重定向到页面

当另一个表laravel中的值为null时重定向到页面
EN

Stack Overflow用户
提问于 2017-12-19 09:14:38
回答 2查看 1.8K关注 0票数 2

如果我的additional_infos表包含一些在本例中为空的内容,即联系人、名称和地址,我将尝试将用户重定向到另一个页面。

我现在已经做过这样的事了:

但它不断地将我重定向到另一页,尽管联系人、姓名和地址都已填写完毕。有人能帮我吗?提前感谢

代码语言:javascript
复制
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,url('/user/showupdate6/'.$id->id.'/edit6')

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-12-19 09:22:34

您永远不会获得null,这样您就可以测试它是否像这个if( $additional_info)一样,它将计算为true,,因为总是返回一个集合,即使没有满足条件的元素,它也将返回一个空集合,而不是null。

你有三个选择:

  • 使用->get()并在if状态if($additional_info->count())中添加->count()
  • ->get()替换为->first(),离开if($additional_info)
  • ->get()替换为->count()if($additional_info > 0)

尝试使用whereNullorWhereNull,如下所示:

代码语言:javascript
复制
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');
}
票数 4
EN

Stack Overflow用户

发布于 2017-12-19 09:21:17

尝试将查询转换为SQL,以检查您首先如何处理数据库。

代码语言:javascript
复制
$additional_info = DB::table('additional_infos')->where('address',NULL)->orWhere('name', NULL)->orWhere('number')->toSql();
dd($additional_info);
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/47883508

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档