【问题标题】:show data from 2 tables laravel 6显示来自 2 个表 laravel 6 的数据
【发布时间】:2021-03-22 08:34:00
【问题描述】:

我在 laravel 6 中显示来自 2 个具有 id 的表的数据时遇到问题。我的表是“用户”和“公司”。

用户

id
name
last name

公司

id
company
address
id_user

模型用户

public function company()
{
    return $this->hasOne('App\Company','id_user','id');
}

示范公司

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

控制器

public function show($id)
    {
       $companies = Company::with('user')->find($id);
       return view('clients.show', compact('companies'));

}

查看

$companies->公司

但问题是没有显示用户表中的数据,有人可以帮助我吗?

【问题讨论】:

  • 我有几个问题。首先,在视图中,您有一个变量 $companies 虽然您的查询将返回一个公司并且您正在访问公司属性,我假设它是一个类似于公司名称的字符串?其次,我假设一家公司可以有很多用户,因此您可能希望将关系命名为用户,这样关系应该返回一个 hasMany。因此,用户模型上的反向关系公司应该返回一个 belongsTo。

标签: php laravel eloquent foreign-keys show


【解决方案1】:

公司表中用户的外键名称应该是“user_id”而不是“id_user” 如果要使用自定义列名,请确保将其传递给关系的第二个参数。 示范公司:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2019-05-05
    • 1970-01-01
    • 2018-10-19
    • 2018-10-30
    • 1970-01-01
    • 1970-01-01
    • 2015-09-10
    • 1970-01-01
    相关资源
    最近更新 更多