Как преобразовать построитель запросов базы данных в модели Eloquent - PullRequest
0 голосов
/ 15 января 2019

Мне нужно преобразовать построитель запросов к базе данных в модель Eloquent. Я использую плагин https://github.com/Kyslik/column-sortable и для него требуется модель Eloquent.

<?php

$payments = DB::table('users')
    ->select('orders.id', 'users.id', 'users.name', 'orders.amount', 'orders.created_at', 'orders.updated_at')
    ->join('patients', 'users.id', '=', 'patients.user_id')
    ->join('orders', 'patients.id', '=', 'orders.patient_id')
    ->where('users.name', 'LIKE', '%' . $q . '%')
    ->orWhere('users.email', 'LIKE', '%' . $q . '%')
    ->get();

Ответы [ 2 ]

0 голосов
/ 15 января 2019

попробуйте объявить красноречивые отношения в вашей соответствующей модели, как указано ниже:

    class Users extends Model {
     public function patients(){
          return this->hasOne('App\Patients', 'user_id', 'id')->with('orders');
     }
    }

   class Patients extends Model {
       public function orders() {
           return this->hasMany('App\Orders', 'patient_id', 'id')->select('id', 'amount', 'created_at', 'updated_at');
       }
   }

теперь вызовите эти отношения в красноречивом запросе в репозитории / контроллере пользователей:

$payments = $this->getModel()->select('id', 'name')->with('patients')->where('name','LIKE','%'.$q.'%')->orWhere('email','LIKE','%'.$q.'%')->get();
0 голосов
/ 15 января 2019

вызовите вашу модель внутри вашего метода контроллера.

$companyObj = new modelname();
$userDetail = $companyObj->model_method_name($request);
...