Laravel 8 Default Models

2021-07-19 11:41 更新

belongsTohasOnehasOneThroughmorphOne 关系允许你指定默认模型,当给定关系为 null 时,将会返回默认模型。 这种模式被称作 空对象模式 ,可以减少你代码中不必要的检查。在下面的例子中,如果发布的帖子没有找到作者, user 方法会返回一个空的 App\Models\User 模型:

/**
 * 获取帖子的作者
 */
public function user()
{
    return $this->belongsTo('App\Models\User')->withDefault();
} 

如果需要在默认模型里添加属性, 你可以传递数组或者回调方法到 withDefault 中:

/**
 * 获取帖子的作者
 */
public function user()
{
    return $this->belongsTo('App\Models\User')->withDefault([
        'name' => 'Guest Author',
    ]);
}

/**
 * 获取帖子的作者
 */
public function user()
{
    return $this->belongsTo('App\Models\User')->withDefault(function ($user, $post) {
        $user->name = 'Guest Author';
    });
} 


以上内容是否对您有帮助:
在线笔记
App下载
App下载

扫描二维码

下载编程狮App

公众号
微信公众号

编程狮公众号