php laravel 排序,php – Laravel排序关系

如何使用相关表对结果进行排序?

我有这个表:客户和经理(用户表)

Client.PHP

PHP

class Client extends Eloquent {

protected $table = 'clients';

public function Manager(){

return $this->belongsTo('User','manager','id');

}

public function Transaction(){

return $this->hasMany('ClientTransaction','client','id');

}

}

Users.PHP是默认的Laravel模型.

我的问题是如何查询表客户端按Manager的名称排序.

到目前为止,这是我的代码:

public function getClients() {

// Sorting preparations

$allowed = array('name','contact','money');

$sort = in_array(Input::get('sort'),$allowed) ? Input::get('sort') : 'name';

$order = Input::get('order') === 'desc' ? 'desc' : 'asc';

// Get Clients from DB

if($sort == 'contact'){

$clients = Client::with(array('Manager' => function($query) use ($order) {

$query->orderBy('name',$order);

}));

} else {

$clients = Client::orderBy($sort,$order)->with('Manager');

}

// Filters

$cname = null;

if(Input::has('cname')){

$clients = $clients->where('name',Input::get('cname'));

$cname = '$cname='.Input::get('cname');

}

// Pagination

$clients = $clients->paginate(25);

// Return View

return View::make('pages.platform.clients')

->with('clients',$clients);

}

如果我按名称尝试sord,它按客户端名称排序,但如果我尝试按联系人排序,则需要按用户(经理)的名称进行排序.

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值