İki masam var User
ve Post
. Biri User
çok olabilir posts
ve biri post
sadece birine aittir user
.
Modelimde User
bir hasMany
ilişkim var ...
public function post(){
return $this->hasmany('post');
}
Ve post
modelimde bir belongsTo
ilişkim var ...
public function user(){
return $this->belongsTo('user');
}
Şimdi bu iki tabloya katılmak Eloquent with()
istiyorum ama ikinci tablodan belirli sütunlar istiyorum. Sorgu Oluşturucu'yu kullanabileceğimi biliyorum ama istemiyorum.
Ne zaman içinde Post
modeli ben yazma ...
public function getAllPosts() {
return Post::with('user')->get();
}
Aşağıdaki sorguları çalıştırır ...
select * from `posts`
select * from `users` where `users`.`id` in (<1>, <2>)
Ama istediğim ...
select * from `posts`
select id,username from `users` where `users`.`id` in (<1>, <2>)
Kullandığımda ...
Post::with('user')->get(array('columns'....));
Yalnızca ilk tablodaki sütunu döndürür. with()
İkinci tablodan kullanarak belirli sütunlar istiyorum . Bunu nasıl yapabilirim?
$query->select('id','username');
, alıyorumTrying to get property of non-object