【问题标题】:What is the best practice to handle empty eloquent query in Laravel?在 Laravel 中处理空的 eloquent 查询的最佳实践是什么?
【发布时间】:2017-07-18 14:34:19
【问题描述】:

到目前为止,我使用的是 eloquent 的 ->exist() 和普通 php 的 isset()...

现在我正在使用它们...,当一个不工作时,我会切换到另一个,然后它会工作。

但这会使代码看起来很脏.. 你有什么建议什么时候使用它们,有什么区别..在laravel中处理空雄辩查询的最佳实践是什么..谢谢

【问题讨论】:

    标签: php laravel null eloquent


    【解决方案1】:

    我们可以为此使用empty() 方法。

    // After you initiate your model in variable
    $var = Model::find($id);
    
    // Just check it use empty method 
    if(empty($var)) {
       // Do something here
    }
    

    编辑: 最佳实践中使用原生 exists()isset() 的说明。

    我们知道isset方法通常用于检查变量是否定义。

    $col = "column"
    if(isset($col)) {
       // true
    }
    if(isset($cols)) {
       // else
    }
    

    对于exists()的用法,通常是用来验证的。你可以在 laravel 文档中查看。

    $name = $request->get('name');
    if(User::where('name', $name)->exists()){
      // It will true if the in users table exists the $name in name columns
      // And do something if true :D
    } else {
      // If not exists/false you can return error like this
    
      return response()->json([
          'error'=>true
      ],400);
    }
    

    【讨论】:

    • 感谢您的回答,但我更希望解释一下何时使用本机 eloquent ->exist() 或 php isset()...
    • 啊好吧好吧,看看我编辑的答案。我希望我能说清楚:D
    • 您也可以只使用计数方法if ($var->count()){/*do something*/},就好像模型返回任何计数将是 1,因此 eval 为 true。
    • 就我个人而言,我会避免使用 isset() 来处理这种事情,因为如果 var 设置为 null 这不是你想要的,它会返回 true。
    • 我通常使用 empty 或者使用 isset :D
    猜你喜欢
    • 2017-02-15
    • 1970-01-01
    • 1970-01-01
    • 2021-11-25
    • 2013-10-15
    • 1970-01-01
    • 2011-09-22
    • 1970-01-01
    • 2021-01-06
    相关资源
    最近更新 更多