Saya punya dua meja, User
dan Post
. Seseorang User
dapat memiliki banyak posts
dan satu post
milik hanya satu user
.
Dalam User
model saya, saya memiliki hasMany
hubungan ...
public function post(){
return $this->hasmany('post');
}
Dan dalam post
model saya, saya memiliki belongsTo
hubungan ...
public function user(){
return $this->belongsTo('user');
}
Sekarang saya ingin bergabung dengan dua tabel ini menggunakan Eloquent with()
tetapi ingin kolom khusus dari tabel kedua. Saya tahu saya bisa menggunakan Pembuat Kueri tetapi saya tidak mau.
Ketika dalam Post
model saya menulis ...
public function getAllPosts() {
return Post::with('user')->get();
}
Ini menjalankan kueri berikut ...
select * from `posts`
select * from `users` where `users`.`id` in (<1>, <2>)
Tapi yang saya inginkan adalah ...
select * from `posts`
select id,username from `users` where `users`.`id` in (<1>, <2>)
Ketika saya menggunakan ...
Post::with('user')->get(array('columns'....));
Itu hanya mengembalikan kolom dari tabel pertama. Saya ingin menggunakan kolom spesifik with()
dari tabel kedua. Bagaimana saya bisa melakukan itu?
$query->select('id','username');
, saya mulaiTrying to get property of non-object