[英]join 2 tables in laravel
我是Laravel5的新手,即使我在网站上取得了一些进步,但我仍然坚持对您来说可能很简单的方法。 我有2张桌子:Users和Books
使用者:
UserID|FirstName|LastName
1|John|Doe
2|Mark|Lehman
3|Dan|Edward
图书:(这意味着ID为UserID的用户已阅读ID为BookID的图书
BookID|UserID
1|1
1|2
我想查找所有读过ID为1的书的用户的名字和姓氏(我将此ID传递给函数finduser($ id))在上面的示例中,finduser(1)应该返回:约翰·多伊·马克·雷曼
(我认为在php中是这样的:从用户加入(Users.ID = Books.userID)上的Books中选择(FirstName,LastName)。
我在helpers.php中而不是在控制器中创建了功能finduser($ id)。 我将此功能称为视图。 我也对如何将此函数的返回值调用到视图中以及如何回显它们感兴趣。
你能帮我吗?
我无法解决另一个主题中的“视图”问题,因为我创建了finduser函数以在视图中回显某些内容……这是我已经完成的事情:
function finduser($id){
return $users=DB::table(users)
->select('users.FirstName',’users.LastName’)
->join(Books, Books.UserID','=',user.ID')
->where(Books.ID','=',$id)
->get();
}
在视图中:
@if(finduser(targetID)!=null)
$us=finduser(targetID);
@foreach($us as $u)
{{$u}}
@endforeach
@endif
结果:$ us = visitors($ item-> ID); ...这很愚蠢... enter code here
建立关系http://laravel.com/docs/5.1/eloquent-relationships
在您的用户模型中
public function books() {
return $this->hasMany('App\Book');
}
在您的书本模型中
public function user() {
return $this->belongsTo('App\User');
}
然后,当您要查找拥有该书的用户时,只需通过以下方式调用您的书:
$book = Book::find(1); // find the book with id 1
$book->user // This gives you the user that owns that book. Try dd($book->user);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.