pbootcms网站模板|日韩1区2区|织梦模板||网站源码|日韩1区2区|jquery建站特效-html5模板网

<small id='O9Diu'></small><noframes id='O9Diu'>

    <tfoot id='O9Diu'></tfoot>
  1. <legend id='O9Diu'><style id='O9Diu'><dir id='O9Diu'><q id='O9Diu'></q></dir></style></legend>
      <bdo id='O9Diu'></bdo><ul id='O9Diu'></ul>
    1. <i id='O9Diu'><tr id='O9Diu'><dt id='O9Diu'><q id='O9Diu'><span id='O9Diu'><b id='O9Diu'><form id='O9Diu'><ins id='O9Diu'></ins><ul id='O9Diu'></ul><sub id='O9Diu'></sub></form><legend id='O9Diu'></legend><bdo id='O9Diu'><pre id='O9Diu'><center id='O9Diu'></center></pre></bdo></b><th id='O9Diu'></th></span></q></dt></tr></i><div class="8mv7qr8" id='O9Diu'><tfoot id='O9Diu'></tfoot><dl id='O9Diu'><fieldset id='O9Diu'></fieldset></dl></div>

      合并和排序兩個 Eloquent 集合?

      Merge and Sort two Eloquent Collections?(合并和排序兩個 Eloquent 集合?)
      <legend id='9Owo8'><style id='9Owo8'><dir id='9Owo8'><q id='9Owo8'></q></dir></style></legend>

      1. <i id='9Owo8'><tr id='9Owo8'><dt id='9Owo8'><q id='9Owo8'><span id='9Owo8'><b id='9Owo8'><form id='9Owo8'><ins id='9Owo8'></ins><ul id='9Owo8'></ul><sub id='9Owo8'></sub></form><legend id='9Owo8'></legend><bdo id='9Owo8'><pre id='9Owo8'><center id='9Owo8'></center></pre></bdo></b><th id='9Owo8'></th></span></q></dt></tr></i><div class="ewscmf2" id='9Owo8'><tfoot id='9Owo8'></tfoot><dl id='9Owo8'><fieldset id='9Owo8'></fieldset></dl></div>
        <tfoot id='9Owo8'></tfoot>
          <tbody id='9Owo8'></tbody>

      2. <small id='9Owo8'></small><noframes id='9Owo8'>

          <bdo id='9Owo8'></bdo><ul id='9Owo8'></ul>

                本文介紹了合并和排序兩個 Eloquent 集合?的處理方法,對大家解決問題具有一定的參考價值,需要的朋友們下面隨著小編來一起學習吧!

                問題描述

                我有兩個集合,我想將它合并到一個變量中(當然,按一列排序 - created_at).我該怎么做?

                I've two Collections and I want merge it to one variable (of course, with ordering by one collumn - created_at). How Can I do that?

                我的控制器看起來像:

                $replies = Ticket::with('replies', 'replies.user')->find($id);
                $logs = DB::table('logs_ticket')
                        ->join('users', 'users.id', '=', 'mod_id')
                        ->where('ticket_id', '=', $id)
                        ->select('users.username', 'logs_ticket.created_at', 'action')
                        ->get();
                

                我的輸出查找例如:

                回復:

                ID | ticket_id | username | message | created_at
                1  | 1         | somebody | asdfghj | 2014-04-12 12:12:12
                2  | 1         | somebody | qwertyi | 2014-04-14 12:11:10
                

                日志:

                ID | ticket_id | username | action | created_at
                1  | 1         | somebody | close  | 2014-04-13 12:12:14
                2  | 1         | somebody |  open  | 2014-04-14 14:15:10
                

                我想要這樣的東西:

                ticket_id | table | username | message | created_at
                1         |replies| somebody | asdfghj | 2014-04-12 12:12:12
                1         | logs  | somebody |  close  | 2014-04-13 12:12:14
                1         | logs  | somebody |  open   | 2014-04-14 11:15:10
                1         |replies| somebody | qwertyi | 2014-04-14 12:11:10
                

                我的票證模型看起來是這樣的:

                My Ticket Model looks that:

                <?php
                
                class Ticket extends Eloquent {
                
                    protected $table = 'tickets';
                
                    public function replies() {
                        return $this->hasMany('TicketReply')->orderBy('ticketreplies.created_at', 'desc');
                    }
                
                    public function user()
                    {
                        return $this->belongsTo('User');
                    }
                }
                ?>
                

                推薦答案

                你不會很容易得到你想要的東西.

                You're not going to be able to get exactly what you want easily.

                通常,使用 $collection->merge($otherCollection); 合并應該很容易,并使用 $collection->sort(); 進行排序.但是,由于沒有唯一 ID 和所需的表格"列,合并將無法按照您希望的方式進行,您必須手動進行.

                In general, merging should be easy with a $collection->merge($otherCollection);, and sort with $collection->sort();. However, the merge won't work the way you want it to due to not having unique IDs, and the 'table' column that you want, you'll have to make happen manually.

                此外,它們實際上都是不同類型的集合我認為(基于 EloquentModel 的集合將是 EloquentCollection,另一個是標準的 Collection),這可能會導致其自身的問題.因此,我建議對兩者都使用 DB::table(),并使用您可以控制的列來擴充您的結果.

                Also they are actually both going to be collections of different types I think (the one being based on an EloquentModel will be EloquentCollection, and the other being a standard Collection), which may cause its own issues. As such, I'd suggest using DB::table() for both, and augmenting your results with columns you can control.

                至于實現這一點的代碼,我不確定,因為我沒有在 Laravel 中做很多低級數據庫工作,所以不知道創建查詢的最佳方法.無論哪種方式,僅僅因為通過兩個查詢和一些 PHP 合并來管理它看起來開始很痛苦,我建議在一個數據庫查詢中完成所有操作.它實際上看起來更整潔,可以說更易于維護:

                As for the code to achieve that, I'm not sure as I don't do a lot of low-level DB work in Laravel, so don't know the best way to create the queries. Either way, just because it's looking like starting to be a pain to manage this with two queries and some PHP merging, I'd suggest doing it all in one DB query. It'll actually look neater and arguably be more maintainable:

                你需要的 SQL 是這樣的:

                The SQL you'll need is something like this:

                SELECT * FROM
                (
                    SELECT
                        `r`.`ticket_id`,
                        'replies' AS `table`,
                        `u`.`username`,
                        `r`.`message`,
                        `r`.`created_at`
                    FROM `replies` AS `r`
                    LEFT JOIN `users` AS `u`
                        ON `r`.`user_id` = `u`.`id`
                    WHERE `r`.`ticket_id` = ?
                ) UNION (
                    SELECT
                        `l`.`ticket_id`,
                        'logs' AS `table`,
                        `u`.`username`,
                        `l`.`action` AS `message`,
                        `l`.`created_at`
                    FROM `logs` AS `l`
                    LEFT JOIN `users` AS `u`
                        ON `l`.`user_id` = `u`.`id`
                    WHERE `l`.ticket_id` = ?
                )
                ORDER BY `created_at` DESC
                

                這是不言自明的:執行兩個查詢,返回相同的列,UNION 它們,然后在 MySQL 中對結果集進行排序.希望它(或類似的東西,因為我不得不猜測您的數據庫結構)對您有用.

                It's pretty self-explanatory: do the two queries, returning the same columns, UNION them and then sort that result set in MySQL. Hopefully it (or something similar, as I've had to guess your database structure) will work for you.

                至于將其轉換為 Laravel DB:: 樣式的查詢,我想這取決于您.

                As for translating that into a Laravel DB::-style query, I guess that's up to you.

                這篇關于合并和排序兩個 Eloquent 集合?的文章就介紹到這了,希望我們推薦的答案對大家有所幫助,也希望大家多多支持html5模板網!

                【網站聲明】本站部分內容來源于互聯網,旨在幫助大家更快的解決問題,如果有圖片或者內容侵犯了您的權益,請聯系我們刪除處理,感謝您的支持!

                相關文檔推薦

                MySQLi prepared statement amp; foreach loop(MySQLi準備好的語句amp;foreach 循環)
                Is mysqli_insert_id() gets record from whole server or from same user?(mysqli_insert_id() 是從整個服務器還是從同一用戶獲取記錄?)
                PHP MySQLi doesn#39;t recognize login info(PHP MySQLi 無法識別登錄信息)
                mysqli_select_db() expects exactly 2 parameters(mysqli_select_db() 需要 2 個參數)
                Php mysql pdo query: fill up variable with query result(Php mysql pdo 查詢:用查詢結果填充變量)
                MySQLI 28000/1045 Access denied for user #39;root#39;@#39;localhost#39;(MySQLI 28000/1045 用戶“root@“localhost的訪問被拒絕)
                <tfoot id='bwKID'></tfoot>
                <legend id='bwKID'><style id='bwKID'><dir id='bwKID'><q id='bwKID'></q></dir></style></legend>
                <i id='bwKID'><tr id='bwKID'><dt id='bwKID'><q id='bwKID'><span id='bwKID'><b id='bwKID'><form id='bwKID'><ins id='bwKID'></ins><ul id='bwKID'></ul><sub id='bwKID'></sub></form><legend id='bwKID'></legend><bdo id='bwKID'><pre id='bwKID'><center id='bwKID'></center></pre></bdo></b><th id='bwKID'></th></span></q></dt></tr></i><div class="rgmdsi3" id='bwKID'><tfoot id='bwKID'></tfoot><dl id='bwKID'><fieldset id='bwKID'></fieldset></dl></div>

                    <tbody id='bwKID'></tbody>
                      <bdo id='bwKID'></bdo><ul id='bwKID'></ul>
                    • <small id='bwKID'></small><noframes id='bwKID'>

                        • 主站蜘蛛池模板: 环氧乙烷灭菌器_压力蒸汽灭菌器_低温等离子过氧化氢灭菌器 _低温蒸汽甲醛灭菌器_清洗工作站_医用干燥柜_灭菌耗材-环氧乙烷灭菌器_脉动真空压力蒸汽灭菌器_低温等离子灭菌设备_河南省三强医疗器械有限责任公司 | 南昌旅行社_南昌国际旅行社_南昌国旅在线 | 自进式锚杆-自钻式中空注浆锚杆-洛阳恒诺锚固锚杆生产厂家 | 心肺复苏模拟人|医学模型|急救护理模型|医学教学模型上海康人医学仪器设备有限公司 | 嘉兴泰东园林景观工程有限公司_花箱护栏 | 北京网站建设公司_北京网站制作公司_北京网站设计公司-北京爱品特网站建站公司 | 河南新乡德诚生产厂家主营震动筛,振动筛设备,筛机,塑料震动筛选机 | 恒温振荡混匀器-微孔板振荡器厂家-多管涡旋混匀器厂家-合肥艾本森(www.17world.net) | 好物生环保网、环保论坛 - 环保人的学习交流平台 | 带压开孔_带压堵漏_带压封堵-菏泽金升管道工程有限公司 | 自动螺旋上料机厂家价格-斗式提升机定制-螺杆绞龙输送机-杰凯上料机 | 南京PVC快速门厂家南京快速卷帘门_南京pvc快速门_世界500强企业国内供应商_南京美高门业 | 高效节能电机_伺服主轴电机_铜转子电机_交流感应伺服电机_图片_型号_江苏智马科技有限公司 | 企小优-企业数字化转型服务商_网络推广_网络推广公司 | 中空玻璃生产线,玻璃加工设备,全自动封胶线,铝条折弯机,双组份打胶机,丁基胶/卧式/立式全自动涂布机,玻璃设备-山东昌盛数控设备有限公司 | 智慧食堂_食堂管理系统_食堂订餐_食堂消费系统—客易捷 | 富森高压水枪-柴油驱动-养殖场高压清洗机-山东龙腾环保科技有限公司 | 热镀锌槽钢|角钢|工字钢|圆钢|H型钢|扁钢|花纹板-天津千百顺钢铁贸易有限公司 | 木材烘干机,木炭烘干机,纸管/佛香烘干设备-河南蓝天机械制造有限公司 | 砂尘试验箱_淋雨试验房_冰水冲击试验箱_IPX9K淋雨试验箱_广州岳信试验设备有限公司 | 东莞市海宝机械有限公司-不锈钢分选机-硅胶橡胶-生活垃圾-涡电流-静电-金属-矿石分选机 | 锂电池砂磨机|石墨烯砂磨机|碳纳米管砂磨机-常州市奥能达机械设备有限公司 | 智能案卷柜_卷宗柜_钥匙柜_文件流转柜_装备柜_浙江福源智能科技有限公司 | 全自动包衣机-无菌分装隔离器-浙江迦南科技股份有限公司 | 济南玻璃安装_济南玻璃门_济南感应门_济南玻璃隔断_济南玻璃门维修_济南镜片安装_济南肯德基门_济南高隔间-济南凯轩鹏宇玻璃有限公司 | 蔬菜清洗机_环速洗菜机_异物去除清洗机_蔬菜清洗机_商用洗菜机 - 环速科技有限公司 | 挤奶设备过滤纸,牛奶过滤纸,挤奶机过滤袋-济南蓝贝尔工贸有限公司 | 仓储笼_金属箱租赁_循环包装_铁网箱_蝴蝶笼租赁_酷龙仓储笼租赁 测试治具|过炉治具|过锡炉治具|工装夹具|测试夹具|允睿自动化设备 | 踏板力计,制动仪,非接触多功能速度仪,逆反射系数测试仪-创宇 | 车充外壳,车载充电器外壳,车载点烟器外壳,点烟器连接头,旅行充充电器外壳,手机充电器外壳,深圳市华科达塑胶五金有限公司 | 苏州同创电子有限公司 - 四探针测试仪源头厂家 | 耙式干燥机_真空耙式干燥机厂家-无锡鹏茂化工装备有限公司 | 无尘烘箱_洁净烤箱_真空无氧烤箱_半导体烤箱_电子防潮柜-深圳市怡和兴机电 | 小青瓦丨古建筑瓦丨青瓦厂家-宜兴市徽派古典建筑材料有限公司 | 水稻烘干机,小麦烘干机,大豆烘干机,玉米烘干机,粮食烘干机_巩义市锦华粮食烘干机械制造有限公司 水环真空泵厂家,2bv真空泵,2be真空泵-淄博真空设备厂 | 北京网络营销推广_百度SEO搜索引擎优化公司_网站排名优化_谷歌SEO - 北京卓立海创信息技术有限公司 | 求是网 - 思想建党 理论强党| 芝麻黑-芝麻黑石材厂家-永峰石业 | 陶瓷加热器,履带式加热器-吴江市兴达电热设备厂 | 恒温振荡混匀器-微孔板振荡器厂家-多管涡旋混匀器厂家-合肥艾本森(www.17world.net) | 北京浩云律师事务所-企业法律顾问_破产清算等公司法律服务 |