2016-09-27 91 views
0

我的表:hasOne和属于关联关系表 - laravel

users : 

id fname email 

brands: 

id title user_id_made 

每个用户都有许多brand S和每个brand belongsTo关系的user

class Brand extends Model 
{ 
    protected $table = 'brands'; 

    protected $fillable = array('title_fa', 
     'title_en','logo','user_id_made'); 



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

class User extends Authenticatable 
{ 
    use Notifiable; 

    protected $fillable = [ 
     'fname' ,'lname' , 'username', 'email', 'password', 
    ]; 

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

    public function brand() 
    { 
     return $this->belongsTo('App\Models\Brand','user_id_made'); 
    } 
} 

我的代码没有任何关于用户的输出。

$data['brands']   = \DB::table('brands')->find(1); 

    var_dump($data['brands']); 
    return; 

回答

0

这不会加载用户。我会建议你使用模型实例来代​​替数据库实例。如果你想用品牌加载用户,那么你可以使用laravel的热切加载。

首先在你的Brand.php模型

你需要传递的第二个参数为user_id_made到hasOne功能,否则它会假设它user_id说明。

public function user() 
{ 
    return $this->hasOne('App\Models\User','user_id_made'); 
} 

你可以做这样的事情。

$data['brands'] = Brand::with('user')->find(1); 

现在,如果您将返回$ data ['品牌'],那么它也会返回用户信息。

希望这会有所帮助。

+0

我有一个列表作为品牌,它内部我想显示制作该品牌的用户的电子邮件。 –

+0

你想要显示品牌与用户的电子邮件ID谁创建? – Vikash

+0

是的。现在如何获取用户信息?! '$ brand-> User-> fname'不起作用。 –