Uzyskaj konkretne kolumny przy użyciu funkcji „Z ()” w Laravel Eloquent
Mam dwa stoły,User
iPost
. JedenUser
może mieć wieleposts
i jedenpost
należy tylko do jednegouser
.
W moimUser
model mamhasMany
relacja...
public function post(){
return $this->hasmany('post');
}
W moimpost
model mambelongsTo
relacja...
public function user(){
return $this->belongsTo('user');
}
Teraz chcę dołączyć do tych dwóch tabel za pomocąEloquent with()
ale chcę konkretnych kolumn z drugiej tabeli. Wiem, że mogę korzystać z Konstruktora zapytań, ale nie chcę.
Kiedy wPost
model Piszę ...
public function getAllPosts() {
return Post::with('user')->get();
}
Uruchamia następujące zapytania ...
select * from `posts`
select * from `users` where `users`.`id` in (<1>, <2>)
Ale ja chcę ...
select * from `posts`
select id,username from `users` where `users`.`id` in (<1>, <2>)
Kiedy używam ...
Post::with('user')->get(array('columns'....));
Zwraca tylko kolumnę z pierwszej tabeli. Chcę używać konkretnych kolumnwith()
z drugiej tabeli. Jak mogę to zrobić?