2016-09-27 86 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'不起作用。 –