如何从Laravel中的3个独立表格获取信息

ogsagwnx  于 2023-01-14  发布在  其他
关注(0)|答案(1)|浏览(127)

我有一个名为users的表,用于存储用户信息,每个用户可以拥有多个存储在不同表中的企业帐户。

    • 型号:**

用户:
身份证
姓名

    • 用户提供商帐户:**

身份证
用户标识
业务名称
业务_告知
业务_地址

    • 用户公司帐户**

身份证
用户标识
公司名称
公司规模

    • 用户影响者帐户:**

身份证
用户标识
姓名
网站
跟随者计数

    • 表格关系:**

用户:

public function providers(): HasMany
    {
        return $this->hasMany(UserProviderAccount::class);
    }
public function companies(): HasMany
    {
        return $this->hasMany(UserCompanyAccount::class);
    }
public function influencers(): HasMany
    {
        return $this->hasMany(UserInfluencerAccount::class);
    }

我希望同时显示用户的所有三种类型的业务帐户。
我该怎么做呢?

oxiaedzo

oxiaedzo1#

您只需按如下方式加载和调用关系:
**UserController:**示例控制器和函数

public function show(User $user){
    //Here we will load all of the relationships for the specific user
    $user->load('providers', 'companies', 'influencers');

    //Assign the providers from user->providers
    $providers = $user->providers;
    
    //Assign the companies from user->companies
    $companies = $user->companies;
    
    //Assign the influencers from user->influencers
    $influencers = $user->influencers;

    //Send all of the data to the view
    return view('users.show', compact('user', 'providers', 'companies', 'influencers'));
}

**users.show视图:**简化版本向您展示概念。

<p>{{$user->name}}</p>

<p>The providers:</p>
<ul>
    @foreach($providers as $provider)
        <li>{{$provider->bussiness_name}}</li>
        <li>{{$provider->bussiness_tell}}</li>
        <li>{{$provider->bussiness_address}}</li>       
    @endforeach
</ul>

<p>The companies:</p>
<ul>
    @foreach($companies as $company)
        <li>{{$company->company_name}}</li>
        <li>{{$company->company_size}}</li>     
    @endforeach
</ul>

<p>The influencers:</p>
<ul>
    @foreach($influencers as $influencer)
        <li>{{$influencer->name}}</li>
        <li>{{$influencer->website}}</li>
        <li>{{$influencer->follower_count}}</li>        
    @endforeach
</ul>

相关问题