我需要将一个数据库查询构建器转换为一个雄辩的模型。我使用的是插件https://github.com/Kyslik/column-sortable,它需要一个有说服力的模型。
<?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();发布于 2019-01-15 18:31:36
尝试在您各自的模型中声明雄辩的关系,如下所示:
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();https://stackoverflow.com/questions/54192482
复制相似问题