Mam dwa stoły Useri Post. Jeden Usermoże mieć wiele postsi jeden postnależący do tylko jednego user.
W moim Usermodelu mam hasManyrelację ...
public function post(){
return $this->hasmany('post');
}
A w moim postmodelu mam belongsTorelację ...
public function user(){
return $this->belongsTo('user');
}
Teraz chcę połączyć te dwie tabele za pomocą, Eloquent with()ale chcę konkretnych kolumn z drugiej tabeli. Wiem, że mogę korzystać z Konstruktora zapytań, ale nie chcę.
Kiedy w Postmodelu 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 chcę to ...
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ę konkretnych kolumn przy użyciu with()z drugiej tabeli. Jak mogę to zrobić?
$query->select('id','username');, otrzymywałemTrying to get property of non-object