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

问题描述 投票:2回答:2

这个错误是什么?

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;
    }

我该怎么说而不是?

laravel
2个回答
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 : '' );
}

0
投票

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

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

要么:

return response()->json($articles->isEmpty() ? $courses : $articles);
© www.soinside.com 2019 - 2024. All rights reserved.