在laravel中加入2个表

时间:2015-06-24 18:36:41

标签: php laravel

我是Laravel5的新手,即使我在我的网站上取得了一些进展,我也会遇到一些对你来说很简单的事情。 我有2个表:用户和书籍

用户:

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中是这样的:select(FirstName,LastName)来自用户加入Books(Users.ID = Books.userID)。

我在helpers.php中创建了函数finduser($ id),而不是在控制器中。我把这个函数称为视图。我也对如何将此函数的返回值调用到视图中以及如何回显它们感兴趣...

请帮帮我吗?

2 个答案:

答案 0 :(得分:0)

我无法解决"视图"其他问题因为我创建了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 =访客($本期特价货品> ID); ......这很愚蠢... enter code here

答案 1 :(得分:0)

创建关系http://laravel.com/docs/5.1/eloquent-relationships

在您的用户模型中

$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);

在您的图书模型中

void CreateMyTooltip(HWND hparent)
{
    HWND hwndTT = CreateWindowEx(WS_EX_TOPMOST, TOOLTIPS_CLASS, NULL,
        WS_POPUP | TTS_NOPREFIX | TTS_ALWAYSTIP, 0, 0, 0, 0, hparent, NULL, 0, NULL);

    TTTOOLINFO ti = { 0 };
    ti.cbSize = sizeof(TTTOOLINFO);
    ti.uFlags = TTF_SUBCLASS;
    ti.hwnd = hparent;
    ti.lpszText = TEXT("Tooltip string");
    GetClientRect(hparent, &ti.rect);

    if (!SendMessage(hwndTT, TTM_ADDTOOL, 0, (LPARAM)&ti))
        MessageBox(0,TEXT("Failed: TTM_ADDTOOL"),0,0);
}

然后,当您想要找到拥有该图书的用户时,只需通过以下方式致电您的图书:

TTOOLINFO::sbSize