带有外键的搜索栏

时间:2019-03-13 18:09:44

标签: php laravel

我遇到了一个难题。我想创建一个搜索栏。 我的表反馈中有4个字段,分别是ID,说明,说明和fk_candidat。

如果输入我的字段“指令”的值,则可以正确获取记录。 enter image description here

现在,我希望用户输入名称而不是说明

我的第二张表名为候选人,我有3个字段,分别是id,name,firstname。

您是否有将fk_name(反馈)与name(候选人)组合的想法?

这是我的代码的想法。

<local:InfoPopup VerticalAlignment="Top" HorizontalAlignment="Right" Height="30" Width="30">
    <TextBlock TextWrapping="Wrap" Margin="5" MaxWidth="400">
        Lorem ipsum dolor sit amet, consectetur adipiscing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Cras pulvinar mattis nunc sed. Interdum consectetur libero id faucibus nisl tincidunt eget nullam. Vestibulum rhoncus est pellentesque elit ullamcorper. Enim blandit volutpat maecenas volutpat blandit aliquam etiam erat velit.
        <LineBreak />
        <LineBreak />
        Est sit amet facilisis magna. Quis enim lobortis scelerisque fermentum dui faucibus. Magna eget est lorem ipsum dolor sit amet. Aenean pharetra magna ac placerat vestibulum lectus mauris ultrices. Viverra nam libero justo laoreet sit amet cursus sit. Fermentum posuere urna nec tincidunt praesent. Maecenas volutpat blandit aliquam etiam erat velit scelerisque.
    </TextBlock>
</local:InfoPopup>

我的HTLM

Content

编辑: 我应该使用功能 whereHas ,但是我不知道语法?

public function index(Request $req){

     if($req->search == ""){
            $feedbacks = Feedback::paginate(5);
           return view('admin.feedbacks.index', compact('feedbacks'));
     } else {
          $feedbacks = Feedback::where('instruction', 'LIKE', '%' .$req->search . '%')
        ->paginate(3);
        $feedbacks->appends($req->only('search'));
        return view('admin.feedbacks.index', compact('feedbacks'));
     }  

    }

谢谢!

1 个答案:

答案 0 :(得分:1)

如果Candidat和“反馈”之间存在一对多关系,则可以使用Laravel的->whereHas()方法进行如下查询

if($req->search == ""){
 $feedbacks = Feedback::paginate(5);
 return view('admin.feedbacks.index', compact('feedbacks'));
} else {
 $feedbacks = Feedback::whereHas('candidats', function($query){
  $query->where('name','LIKE', '%' .$req->search . '%');
 })->paginate(3);
 return view('admin.feedbacks.index', compact('feedbacks'));
}

在此处了解更多信息:https://laravel.com/docs/master/eloquent-relationships#querying-relationship-existence