আমার দুটি টেবিল আছে, 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