Response内容必须是实现__toString()的字符串或对象,给出“boolean”。在larave;

时间:2017-12-22 08:11:07

标签: laravel

这是什么错误?

  

Response内容必须是字符串或对象实现   __toString(),“boolean”给出。

public function search()
    {
        $keyword = request('search');
        $articles = Article::search($keyword)->latest()->get();
        $courses = Course::search($keyword)->latest()->get();
        return $articles or $courses;
    }

我应该说什么而不是

2 个答案:

答案 0 :(得分:1)

使用or是条件运算符,它将在结果中给出布尔值,使用三元运算符来实现,就像这样。

public function search()
{
    $keyword = request('search');
    $articles = Article::search($keyword)->latest()->get();
    $courses = Course::search($keyword)->latest()->get();
    return $articles ? $articles : ($courses ? $courses : '' );
}

答案 1 :(得分:0)

您正在返回boolean而不是string。您需要将其更改为类似的内容才能使其正常工作:

return $articles->isEmpty() ? $courses : $articles;

或者:

return response()->json($articles->isEmpty() ? $courses : $articles);