第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問題,去搜搜看,總會(huì)有你想問的

在 Laravel 中的 with() 之后的另一個(gè)模型中的 OrderBy

在 Laravel 中的 with() 之后的另一個(gè)模型中的 OrderBy

PHP
慕工程0101907 2022-11-12 13:24:45
我有一個(gè)問題,我正在嘗試按鏈接表中的日期對請求進(jìn)行排序。我在一對多中有一個(gè)名為 User 的表和另一個(gè)名為 Posts 的表。User::with('posts')    ->where('last_name', 'like', $search['lastname'] . '%')    ->where('first_name', 'like', $search['firstname'] . '%')    ->where('email', 'like', '%' . $search['email'] . '%')    ->whereHas('posts', function ($query) use ($search) {        $query->where('reference', 'like', $search['reference'] . '%')            ->orderBy('date', 'asc');    })    ->orderBy('posts.date', 'desc')    ->paginate(15);我怎樣才能做到這一點(diǎn) ?
查看完整描述

2 回答

?
慕虎7371278

TA貢獻(xiàn)1802條經(jīng)驗(yàn) 獲得超4個(gè)贊

目前用戶是主要實(shí)體,因此帖子的排序?qū)⒃谠撚脩舻奶又羞M(jìn)行,而不是在所有帖子中全局排序。我猜您想進(jìn)行全局排序,這意味著帖子應(yīng)該按日期排序


試試這個(gè)在用戶類中添加一個(gè)新關(guān)系


class User extends Model {

  public function rpost() {

    return $this->belongsTo(\where\ever\posts::class, 'user_id', 'id');

    //inverse mapping from user --> posts table

    //assuming posts table is using user_id column to track the ownership

    //and user table has id as it's primary key

  }

}

然后修改你的代碼


User::with('rpost')

    ->select('posts.title'.'posts.id', 'users.name',  

           \DB::raw('(SELECT posts.date FROM posts WHERE user.id = posts.user_id ) as sort'))

    ->where('last_name', 'like', $search['lastname'] . '%')

    ->where('first_name', 'like', $search['firstname'] . '%')

    ->where('email', 'like', '%' . $search['email'] . '%')

    ->whereHas('posts', function ($query) use ($search) {

        $query->where('reference', 'like', $search['reference'] . '%');

    })

    ->orderBy('sort')

    ->paginate(15);


查看完整回答
反對 回復(fù) 2022-11-12
?
智慧大石

TA貢獻(xiàn)1946條經(jīng)驗(yàn) 獲得超3個(gè)贊

您可以使用 sortBy


 $users = User::with('posts')->get()

  ->sortBy(function($user) { 

     return $user->posts->created_at;

  })

或者您可以將這樣的連接與 orderBy 一起使用


  $query = User::where('last_name', 'like', $search['lastname'] . '%')->where(

        'first_name',

        'like',

        $search['firstname'] . '%'

    )->where('customers.email', 'like', '%' . $search['email'] . '%');

    $query = $query->join('posts', 'posts.user_id','=','users.id');

    $query = $query->select('posts*','users.*');

    $query = $query->orderBy('posts.created_at','asc');

    $record = $query->get();


查看完整回答
反對 回復(fù) 2022-11-12
  • 2 回答
  • 0 關(guān)注
  • 333 瀏覽

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)