ایجاد ارتباط بین جدول‌ها وسورت بندی

پرسیده شده
فعالیت 1277 روز پیش
دیده شده 536 بار
0

 سلام استاد

به فرض ما سه جدول داریم یکی کاربران ما می باشد به نام user و  جدول دیگر به نام topic که موضوعات ما در آن قرار میگیرد هر کاربر میتواند موضوعاتی را انتخاب کند و هر موضوع می تواند چند کاربر داشته باشد و جدول دیگر به نام point که امتیاز کاربران در آن می باشد هر کاربر یک امتیاز دارد و هر امتیاز متعلق به یک کاربر می باشد می خواهم api بنویسم که با انتخاب یک موضوع کاربرانی که آن موضوع را انتخاب نموده اند به همراه امتیاز آنها نمایش داده شود و بتوان بر اساس امتیاز آنها سورت بندی(sort)کرد 

$list_user =Topic::where('id',1)->with(array('users' => function($q)
        {
            $q->with('points')->get();

        }))->get();

من به این شکل توانستم به لیستم دست پیدا کنم ولی قابلیت سورت بندی به این شکل انجام نمی شود راه حل به چه صورت می باشد با تشکر

فایل پیوست

saeed mohamadian
saeed mohamadian

11 آبان 99

0
حذف شده

سلام ... 

این تیکه کد را تست کنید:‌

$users = Topic::find(1)->users;

$users->with(['points' => function ($query) {
    $query->orderBy('point');
}]);

 

فایل پیوست

مهرداد سامی

توسط

مهرداد سامی

11 آبان 99

0
حذف شده

نه همچین خطایی میدهد

BadMethodCallException: Method Illuminate\Database\Eloquent\Collection::with does not exist. in file C:\xampp\htdocs\gulldashboard3\vendor\laravel\framework\src\Illuminate\Support\Traits\Macroable.php on line 103

 

فایل پیوست

saeed mohamadian

توسط

saeed mohamadian

11 آبان 99