繁体   English   中英

用户模型的laravel关联问题

[英]laravel assocation issue with user model

我有与用户的关联广告表,如何显示用户数据。 它向我显示了尝试获取非对象关联属性的错误。

表格:

  1. 广告
  2. 用户(默认为Laravel)

在用户模型中:

    public function ads()
    {
        return $this->hasMany('App\Ad','user_id');
    }
    In Ad Model
    public function user()
    {
        return $this->belongsTo('App\User');
    }

    in Routes
Route::get('/ads',function(){
      $ads = Ad::get();
      //print_r($ads);
   foreach ($ads as $ad) {
          echo $ad->user->name;// issue here

   }
});

当我print_r($ad->user)时,它将打印此数组;

App \\ User对象([可填充:受保护] =>数组([0] =>名称[1] =>电话[2] =>电子邮件[3] =>密码[4] =>角色)[隐藏:受保护] =>数组([0] =>密码[1] => Remember_token)[连接:受保护] => [表:受保护] => [primaryKey:受保护] => id [每页:受保护] => 15 [递增] => 1 [时间戳] => 1 [属性:受保护] =>数组([id] => 1 [名称] => irfan [电子邮件] => irfan0786@gmail.com [电话] => 43434 [密码] = > $ 2Y $ 10 $ dnUuC9yxQwSHcpWy1oZlpuxaU33eBz1VYCPFQgfJYtncDivmDfqym [作用] =>用户[remember_token] => x3l3x1tkXUB3I7KiRggPRclnCR5JGnDLlzCxZxeAmfpGCYFR0ylSrKNwSSuy [created_at] => 2016年6月12日17点42分36秒[的updated_at] => 2016年6月22日3点26分28秒)[ original:protected] =>数组([id] => 1 [name] => irfan [email] => irfan0786@gmail.com [phone] => 43434 [password] => $ 2y $ 10 $ dnUuC9yxQwSHcpWy1oZlpuxaU33eBz1VYCPFQgfJYtncDiroDro >用户[remember_token] => x3l3x1tkXUB3I7KiRggPRclnCR5JGnDLlzCxZxeAmfpGCYFR0ylSrKNwSSuy [created_at] => 2016-06-12 17:42:36 [updat ed_at] => 2016-06-22 03:26:28)[relations:protected] => Array()[visible:protected] => Array()[appends:protected] => Array()[guarded:protected] =>数组([0] => *)[dates:protected] => Array()[dateFormat:protected] => [casts:protected] => Array()[touches:protected] => Array()[observables :protected] => Array()[with:protected] => Array()[morphClass:protected] => [exists] => 1 [wasRecentlyCreated] =>)

要获取您应该使用的所有广告,请Ad::all()而不是Ad::get()

由于一位用户拥有一个广告,因此更新您的Ad模型:

public function ads()
{
    return $this->hasOne('App\Ad','user_id');
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM