使用eloquent搜索关注用户的用户

时间:2018-02-23 10:45:23

标签: laravel eloquent

我在表页面中有一个页面,其中包含:

  

id = 1,姓名,姓氏

我在这些字段中找到了表关注者

  

page_id,follower_id

我得到了表格用户,其中包含以下字段:

  

id,name,lastname,photo,friendly_url

我进行了搜索'用户编写的内容以及页面的 $ id

public function u_followers_search($id) {
  $_POST['search']
}

我想使用$ _POST ['搜索']搜索该页面后面的所有用户并显示这些用户...

2 个答案:

答案 0 :(得分:0)

Followers::select('users.*')
->leftJoin('users', 'followers.follower_id', '==', 'user.id')
->where('page.id', $id )
->get();

假设您的关注者ID是user.id(关注者表和用户表之间的外键关系)。

答案 1 :(得分:0)

laravel elequent。

//Page.php
public function users()
{
   return $this->hasManyThrough(
     'App\User',
     'App\Follower', // followers model
     'page_id',      // Foreign key in Follower
     'id',  // Foreign key in Users
     'id',           // Local key Page
     'follower_id'            // Local key Users
  );
 }

//Controller
public function u_followers_search(Request $request) {
  $page = Page::find($request->id);
  return $page->load([
     'users' => function($query) use ($request){
       $query->where('name', 'LIKE', '%'.$request->search.'%')
       ->orWhere('lastname', 'LIKE', '%'.$request->search.'%');
     }
   ]);
}

来源:https://laravel.com/docs/5.6/eloquent-relationships#has-many-through