«
laravel 关联模型中withDefault方法的作用

时间:2022-3-16    作者:网络剑客    分类: php


withDefault 方法为什么会存在?

laravel提供了非常好用的关联模型使用,正常情况下 文章对应的添加用户是存在的,如果用户表中的数据删除,那么关联模型就会返回一个null值。

就是为了解决返回null所带来问题的。

PostsModel.php

<?php

namespace App;

use Illuminate\Database\Eloquent\Model;

class PostsModel extends Model
{

    protected $table = 'posts';

    protected $guarded = [];

    //获取用户
    public function user()
    {
        return $this->belongsTo(UserModel::class, 'user_id', 'id')->withDefault();//也可以传默认值->withDefault(['name' => 'simon'])
     }

}

当使用json_encode($posts); 方法后,就会得到下面的结果:

重点是user为空数组

{"id":3,"title":"test008","content":"test content","user_id":8,"created_at":"2020-02-01 15:31:21","updated_at":"2020-02-01 15:31:21","user":[]}

标签: laravel