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);这样我就得到了我的页码和顺序。非常感谢。