【问题标题】:Accessing data trough relationship Laravel通过关系 Laravel 访问数据
【发布时间】:2018-05-22 00:08:59
【问题描述】:

我有两个表/模型。用户和广告。

当用户发布广告时,他们的用户 ID 是数据库行中的一列。我想使用 id 来获取用户详细信息并将其显示在刀片​​模板中。

这些是模型

广告属于用户。

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

用户有很多广告。

class User extends Authenticatable
{
    public function advert(){
      return $this->hasMany('App\Advert);
    }
}

在广告展示页面上,我希望在其旁边打印出用户名和详细信息。目前我只能访问 ID,因为它作为属性存储在数据库的 advert 列中。我如何使用这种关系来访问用户数据。

这是表演控制器

public function show($id){
      //Shows add user clicked on based on id
      $user = User::where('id', $id)->first();
      $Advert = Advert::where('id', $id)->first();
      return view('pages/advert/show', compact('Advert', 'user'));

    }

在显示页面视图中,我可以像这样访问用户 ID {{$user->id}}

【问题讨论】:

    标签: laravel relational-database


    【解决方案1】:

    您正在使用传递给您的show 函数的$id 来检索用户和广告。

    public function show($id){
        // Get the avert with the passed in id
        $advert = Advert::find($id);
        // From the advert get the user related to it.
        $user = $advert->user;
        return view('pages/advert/show', compact('advert', 'user'));
    }
    

    查看https://laravel.com/docs/5.6/eloquent-relationships#querying-relations 以更好地了解 eloquent 如何处理人际关系。

    【讨论】:

    • 谢谢你
    猜你喜欢
    • 2023-03-21
    • 2014-05-15
    • 2019-07-24
    • 2018-01-11
    • 1970-01-01
    • 2023-03-17
    • 2012-09-19
    • 1970-01-01
    • 2023-03-04
    相关资源
    最近更新 更多