从一个表返回结果

时间:2014-04-07 21:37:28

标签: php mysql sql laravel

我有两张桌子:

users
{ id, username }

items
{ id, user_id }

在laravel中,我如何在项目固定链接上正确返回用户名?

例如:

item #39 by JohnSmith

我尝试了以下内容:

$items = DB::table('items')->where('id', '=', 39)->first();
$username DB::table('users')->where('id', '=', $items->user_id)->first();

item #{{ $items->id }} by {{ $username }}

2 个答案:

答案 0 :(得分:1)

如果您使用的是Eloquent Models,您只需执行

即可
$item = Item::find(39);
$username = $item->user->username;

这当然要求您在用户和项目模型中正确定义关系。

答案 1 :(得分:1)

models目录中创建两个模型:

// User Model (app/models/User.php)
class User Extends Eloquent {
    public function items()
    {
        return $this->hasMany('Item');
    }
}

// Item Model (app/models/Item.php)
class Item Extends Eloquent {
    public function user()
    {
        return $this->belongsTo('User');
    }
}

现在您可以在控制器中使用,如下所示:

$item = Item::with('user')->find(39);
$username = $item->user->username;