hasOne和hasMany的区别

hasOne和hasMany的区别,单从getLastSql()获取到的SQL代码看不出区别,区别在返回的数据的数据结构
hasOne

 获取1条,当有多条时选取最顶部或最底部可以用ORDER BY `last_follow_date` DESC/ASC"控制

$sql = user1Model::with(['userToRecord'=>function($q){
                $q->field('id,user_id,agent_id,last_follow_date')
                    ->order('last_follow_date asc');
        }])

        $ids2 =  $sql->select();
        var_dump($sql->getLastSql());
SELECT `id`,`user_id`,`agent_id`,`last_follow_date` FROM `hl_user_record_log` WHERE  `user_id` IN (140488,140487,140486,140485,140484) ORDER BY `last_follow_date` ASC
[0]=>
  array(4) {
    ["id"]=>
    int(140488)
    ["id_card"]=>
    string(18) ""
    ["create_time"]=>
    string(19) "2022-07-27 17:32:45"
    ["user_to_record"]=>
    array(4) {
      ["id"]=>
      int(65)
      ["user_id"]=>
      int(140488)
      ["agent_id"]=>
      int(122433)
      ["last_follow_date"]=>
      string(19) "2022-07-28 10:54:52"
    }
  }
hasMany

获取多条

$sql = user1Model::with(['userToRecords'=>function($q){
                $q->field('id,user_id,agent_id,last_follow_date')
                    ->order('last_follow_date asc');
        }])

        $ids2 =  $sql->select();
        var_dump($sql->getLastSql());
[0]=>
  array(4) {
    ["id"]=>
    int(140488)
    ["id_card"]=>
    string(18) ""
    ["create_time"]=>
    string(19) "2022-07-27 17:32:45"
    ["user_to_records"]=>
    array(2) {
      [0]=>
      array(4) {
        ["id"]=>
        int(64)
        ["user_id"]=>
        int(140488)
        ["agent_id"]=>
        int(122433)
        ["last_follow_date"]=>
        string(19) "2022-07-27 19:11:49"
      }
      [1]=>
      array(4) {
        ["id"]=>
        int(65)
        ["user_id"]=>
        int(140488)
        ["agent_id"]=>
        int(122433)
        ["last_follow_date"]=>
        string(19) "2022-07-28 10:54:52"
      }
    }
  }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
<?php namespace App\Models; use Illuminate\Database\Eloquent\Factories\HasFactory; use Illuminate\Database\Eloquent\Relations\HasMany; use Illuminate\Database\Eloquent\Relations\HasOne; /** * App\Models\CabinetOrderDetail * * @property int $id * @property int $cabinetOrderId 货柜id * @property string $orderId 订单ID * @property \Illuminate\Support\Carbon|null $created_at * @property \Illuminate\Support\Carbon|null $updated_at * @method static \Illuminate\Database\Eloquent\Builder|CabinetOrderDetail newModelQuery() * @method static \Illuminate\Database\Eloquent\Builder|CabinetOrderDetail newQuery() * @method static \Illuminate\Database\Eloquent\Builder|CabinetOrderDetail query() * @method static \Illuminate\Database\Eloquent\Builder|CabinetOrderDetail whereCabinetOrderId($value) * @method static \Illuminate\Database\Eloquent\Builder|CabinetOrderDetail whereCreatedAt($value) * @method static \Illuminate\Database\Eloquent\Builder|CabinetOrderDetail whereId($value) * @method static \Illuminate\Database\Eloquent\Builder|CabinetOrderDetail whereOrderId($value) * @method static \Illuminate\Database\Eloquent\Builder|CabinetOrderDetail whereUpdatedAt($value) * @mixin \Eloquent * @mixin IdeHelperCabinetOrderDetail */ class CabinetOrderDetail extends BaseModel { use HasFactory; public function inboundOrder(): HasOne { return $this->hasOne(InboundOrder::class, 'id', 'orderId'); } public function cabinetOrder(): HasOne { return $this->hasOne(CabinetOrder::class, 'id', 'cabinetOrderId'); } public function orderDetails() { return $this->hasMany(OrderDetail::class, 'cabinetOrderId', 'id'); } } 有错漏吗
07-23

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

崎山小鹿

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值