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