在laravel中使用雄辩的方法连接2个数据库表

时间:2018-08-19 19:20:57

标签: laravel eloquent

所以我试图从一个表中连接一个用户ID的属性,比如说购物车,在表中的ID假设用户,这样我就可以检索属性名称,然后在网页中显示它们,但是我很少对如何连接它们感到困惑,有人可以帮我吗?,谢谢

控制器

public function details($id){
    $order = Cart::where('id',$id)->first();

    //here's where i want to connect the id
    $user = Cart::where('userid')->first();

    return view('admin.order.details', compact('order', 'user'));
}

模型

class Cart extends Model
{
protected $fillable = [
    'userid','alamatid','code','type','quantity','kurir','total','img_picture','note',
];

protected $hidden = [
    'remember_token',
];
}

2 个答案:

答案 0 :(得分:0)

我认为您想要建立一段关系,

在购物车模型中,您可以添加一个函数来说明模型的拥有/归属

例如,如果购物车属于用户,则可以将其添加到购物车模型中

function user() {
    return $this->belongsTo('App\User');
}

请注意,App\User是通往用户模型的路线,并且在购物车表中,您必须具有user_id列。

然后您的查询应该是这样的

$order = Cart::with('user')->find($id);

要在您的视图中访问用户表中的名称,您可以这样做

{{ $order->user->name }}

答案 1 :(得分:0)

您需要以适当的关系在用户和购物车之间建立联系。

假设一个用户有一个购物车,而一个购物车属于某个用户,那么我们需要一对一的关系https://laravel.com/docs/5.6/eloquent-relationships#one-to-one