मेरे पास दो टेबल हैं, User
और Post
। एक User
कई हो सकते हैं posts
और एक post
केवल एक का है user
।
मेरे User
मॉडल में मेरा hasMany
रिश्ता है ...
public function post(){
return $this->hasmany('post');
}
और मेरे post
मॉडल में मेरा belongsTo
रिश्ता है ...
public function user(){
return $this->belongsTo('user');
}
अब मैं इन दो तालिकाओं का उपयोग Eloquent with()
करना चाहता हूं, लेकिन दूसरी तालिका से विशिष्ट कॉलम चाहते हैं। मुझे पता है कि मैं क्वेरी बिल्डर का उपयोग कर सकता हूं लेकिन मैं नहीं करना चाहता।
जब Post
मॉडल में मैं लिखता हूं ...
public function getAllPosts() {
return Post::with('user')->get();
}
यह निम्नलिखित प्रश्नों को चलाता है ...
select * from `posts`
select * from `users` where `users`.`id` in (<1>, <2>)
लेकिन मैं जो चाहता हूं ...
select * from `posts`
select id,username from `users` where `users`.`id` in (<1>, <2>)
जब मैं उपयोग ...
Post::with('user')->get(array('columns'....));
यह केवल पहली तालिका से कॉलम लौटाता है। मैं with()
दूसरी तालिका से विशिष्ट कॉलम का उपयोग करना चाहता हूं । मैं उसे कैसे कर सकता हूँ?
$query->select('id','username');
, मैं हो रहा थाTrying to get property of non-object