在phplaravel中,静态方法return可以布尔值吗?

In php laravel, can a static method return boolean?

我正在我的模型中编写一个方法来 return true 或 flase。以下是我的代码。

  public static function isSerialRequired($id)
        {
            $data = static::where('user_id', $id)->orderBy('id','desc')->get();

            data processing code... 

            if (condition for true)
                return true;
            return false;

        }

我收到以下错误。

响应内容必须是一个字符串或对象实现 __toString(), "boolean" given

问题不在于此方法,它 return 是一个布尔值,而在于您之后对 return 值执行的操作。显然,您不小心 return 从您的控制器中编辑了该方法的结果,并且 Laravel 不喜欢这样,因为它会尝试将您的控制器 return 转换为字符串。


这就是问题所在:

return ($attempt->isSerialRequired($request['user_ID']))? view('take_serial') : view('message');

一个括号太多了,这个可行:

return ($attempt->isSerialRequired($request['user_ID']) ? view('take_serial') : view('message'));