Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/php/292.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何在Laravel中使用查询结果并使用LIKE语句再次查询_Php_Sql_Laravel_Laravel 5 - Fatal编程技术网

Php 如何在Laravel中使用查询结果并使用LIKE语句再次查询

Php 如何在Laravel中使用查询结果并使用LIKE语句再次查询,php,sql,laravel,laravel-5,Php,Sql,Laravel,Laravel 5,我试图使用问题的结果,并得到问题,如果标题有一些字符在它再次。 若我在条件_问题表中查询,我会得到预期的结果 public function showQuestions($category) { $myArray = array($category); $questions = Question::whereIn('question_id', function ($query) use ($myArray) { $query-&g

我试图使用问题的结果,并得到问题,如果标题有一些字符在它再次。 若我在条件_问题表中查询,我会得到预期的结果

public function showQuestions($category)
    {
        $myArray = array($category);

        $questions = Question::whereIn('question_id', function ($query) use ($myArray) {
            $query->select('question_id')
                ->from('condition_question')
                ->whereIn('condition_id', $myArray);
        })->orderBy('question_id', 'desc')->paginate(20);

        return QuestionLiteResource::collection($questions);
}
问题:如何使用now$questions结果和LIKE语句再次查询。到目前为止,我尝试了许多方法,例如,这样,但由于我遇到了错误,因此缺少了一些方法:

public function showQuestions($category, $queryQuestion)
    {
        $myArray = array($category);

        $chary = $queryQuestion;

        $questions = Question::whereIn('question_id', function ($query) use ($myArray) {
            $query->select('question_id')
                ->from('condition_question')
                ->whereIn('condition_id', $myArray);
        })->get();

        $results = $questions->where('question_title', 'LIKE', "%{$chary}%")->get();

        return QuestionLiteResource::collection($results->values());
}
我知道这不是我最好的,但需要一些帮助…最后有分页结果也很酷。
所以,如何从标题为char的问题表中获取问题集合。欢迎任何帮助

您可能知道,一旦调用get()函数,就会得到结果,无法进一步查询。也许这会奏效:

public function showQuestions($category, $queryQuestion)
    {
        $myArray = array($category);

        $chary = $queryQuestion;

        $questions = Question::whereIn('question_id', function ($query) use ($myArray) {
            $query->select('question_id')
                ->from('condition_question')
                ->whereIn('condition_id', $myArray);
        })
        ->where('question_title', 'LIKE', "%{$chary}%")
        ->get();

        return QuestionLiteResource::collection($questions);
}

您可能知道,一旦调用get()函数,就会得到结果,无法进一步查询。也许这会奏效:

public function showQuestions($category, $queryQuestion)
    {
        $myArray = array($category);

        $chary = $queryQuestion;

        $questions = Question::whereIn('question_id', function ($query) use ($myArray) {
            $query->select('question_id')
                ->from('condition_question')
                ->whereIn('condition_id', $myArray);
        })
        ->where('question_title', 'LIKE', "%{$chary}%")
        ->get();

        return QuestionLiteResource::collection($questions);
}

由于您在问题查询中调用了
get()
,因此结果将作为
Laravel集合获得

要筛选整个集合,可以使用
filter()
函数

示例代码

$results=$questions->filter(函数($question)使用($chary){
return Str::contains($question->question\u title,$chary);
});

因为您在问题查询中调用了
get()
,所以您将得到一个
Laravel集合的结果

要筛选整个集合,可以使用
filter()
函数

示例代码

$results=$questions->filter(函数($question)使用($chary){
return Str::contains($question->question\u title,$chary);
});

你好,塔拉卡。回答得很好,它确实返回了对象数组。如何实现分页和排序方式?没关系,我是通过将Kevin Bui answer和get()结合起来实现的,而不是在末尾添加orderBy('question_id','desc')->paginate(20);非常感谢。嗨,塔拉卡。回答得很好,它确实返回了对象数组。如何实现分页和排序方式?没关系,我是通过将Kevin Bui answer和get()结合起来实现的,而不是在末尾添加orderBy('question_id','desc')->paginate(20);非常感谢。谢谢,它很管用!我只是在orderBy('question_id','desc')的末尾添加了而不是get()->paginate(20);这样我就得到了我的页码和顺序。谢谢,谢谢,它很管用!我只是在orderBy('question_id','desc')的末尾添加了而不是get()->paginate(20);这样我就得到了我的页码和顺序。非常感谢。